servidor habilitar comandos comando linux bash shell ssh

comandos - habilitar ssh en linux



Pasar variables en el comando remoto ssh (4)

Como se respondió anteriormente, no es necesario configurar la variable de entorno en el host remoto. En su lugar, puede simplemente hacer la metaexpansión en el host local y pasar el valor al host remoto.

ssh [email protected] ''~/tools/run_pvt.pl $BUILD_NUMBER''

Si realmente desea establecer la variable de entorno en el host remoto y usarlo, puede usar el programa env

ssh [email protected] "env BUILD_NUMBER=$BUILD_NUMBER ~/tools/run_pvt.pl /$BUILD_NUMBER"

En este caso, esto es un poco exagerado, y nota

  • env BUILD_NUMBER=$BUILD_NUMBER realiza la env BUILD_NUMBER=$BUILD_NUMBER en el host local
  • la variable de entorno BUILD_NUMBER remota será utilizada por
    el shell remoto

Quiero poder ejecutar un comando desde mi máquina usando ssh y pasar la variable de entorno $BUILD_NUMBER

Esto es lo que estoy intentando:

ssh [email protected] ''~/tools/myScript.pl $BUILD_NUMBER''

$BUILD_NUMBER está configurado en la máquina que realiza la llamada ssh y dado que la variable no existe en el host remoto, no se recupera.

¿Cómo paso el valor de $BUILD_NUMBER ?


Escape de la variable para acceder a las variables fuera de la sesión ssh: ssh [email protected] "~ / tools / myScript.pl / $ BUILD_NUMBER"


Las variables en comillas simples no se evalúan. Usa comillas dobles:

ssh [email protected] "~/tools/run_pvt.pl $BUILD_NUMBER"

El shell expandirá las variables entre comillas dobles, pero no entre comillas simples. Esto cambiará a la cadena deseada antes de pasarse al comando ssh .


Si utiliza

ssh [email protected] "~/tools/run_pvt.pl $BUILD_NUMBER"

en lugar de

ssh [email protected] ''~/tools/run_pvt.pl $BUILD_NUMBER''

su caparazón interpolará el $BUILD_NUMBER antes de enviar la cadena de comando al host remoto.