Me gustaría ejecutar un comando y un script ubicados en una máquina remota con un script en una máquina local. Sé que es posible ejecutar este tipo de comandos con ssh
, así que hice:
#!/bin/bash
ssh username@target 'cd locationOf/theScript/; ./myScript.sh'
Funciona perfectamente Me gustaría que este script sea más genérico, usando variables. Ahora es:
#!/bin/bash
LOCATION=locationOf/theScript/
EXEC=myScript.sh
ssh username@target 'cd ${LOCATION}; ./${EXEC}'
Y me sale este error: bash: ./: is a directory
Supongo que la máquina remota no conoce estas variables. Entonces, ¿hay alguna manera de exportarlos al destino?
shell-script
ssh
remote
variable-substitution
Jean-Baptiste Martin
fuente
fuente
Respuestas:
No conozco una manera fácil de exportar variables de entorno a destino, pero su script podría funcionar si lo reemplaza
'
con"
. Con'
s la cadena'cd ${LOCATION}; ./${EXEC}'
se pasa textualmente, pero conLa sustitución de variables se realiza localmente.
Tenga en cuenta que los valores de
LOCATION
yEXEC
se pasan al shell remoto, por lo que esto solo funciona si no contienen caracteres especiales de shell.fuente