Hola! Una pregunta, alguien sabe porque no funciona el shortcut del home <code>~</code> cuando se utiliza en el script. Este es mi script...

Pregunta de la clase:
Expresiones Condicionales
Holmes Giovanny Salazar Osorio

Holmes Giovanny Salazar Osorio

Pregunta
studenthace 5 años

Hola!

Una pregunta, alguien sabe porque no funciona el shortcut del home

~
cuando se utiliza en el script.

Este es mi script:

conditionalexpression.PNG

Y este es el resultado, sin usar el shortcut y usandolo:

homeShortcut.PNG

3 respuestas
para escribir tu comentario
    Diego Fernando Marin Lozano

    Diego Fernando Marin Lozano

    studenthace 5 años

    Cuando tu script ejecuta

    read pathArchivo
    y escribes
    ~/.ssh
    el contenido de la variable es ese, sin convertir a la ruta completa. Por eso el test
    [ -d "$pathArchivo" ]
    no funciona, esa ruta realmente no existe. Justo después de tu
    read pathArchivo,
    puede agregar la linea
    eval $pathArchivo
    y esto expande el
    ~
    , así tendrías la ruta completa y lo demás debería funcionar como supones.

    Marconi Poveda

    Marconi Poveda

    company_adminhace 5 años

    El script espera una ruta específica en texto no un comando que tenga que interpretar. El símbolo de virguililla ~ es un comando interpretado por bash y nuestro script no está traduciendo, agarra el valor de la variable y lo compara tal cual, sin interpretarlo como lo haría bash.

    Israel Yance

    Israel Yance

    studenthace 5 años

    Quizás porque se está ejecutando con otro usuario y por eso la ruta es diferente. Es una suposición.

    Lo que puedes hacer es imprimir en pantalla el nombre del usuario que está ejecutando el script para que puedas descartar.

    whoami

    A ver prueba y nos dices qué te sale.

Curso de Bash Shell

Curso de Bash Shell

Con Bash-Shell puedes: manipular archivos y carpetas, ejecutar aplicaciones, conectar una Apps y automatizar procesos repetitivos.

Curso de Bash Shell
Curso de Bash Shell

Curso de Bash Shell

Con Bash-Shell puedes: manipular archivos y carpetas, ejecutar aplicaciones, conectar una Apps y automatizar procesos repetitivos.