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 pvt@192.168.1.133 ''~/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 pvt@192.168.1.133 "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 laenv 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 pvt@192.168.1.133 ''~/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 pvt@192.168.1.133 "~ / tools / myScript.pl / $ BUILD_NUMBER"
Las variables en comillas simples no se evalúan. Usa comillas dobles:
ssh pvt@192.168.1.133 "~/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 pvt@192.168.1.133 "~/tools/run_pvt.pl $BUILD_NUMBER"
en lugar de
ssh pvt@192.168.1.133 ''~/tools/run_pvt.pl $BUILD_NUMBER''
su caparazón interpolará el $BUILD_NUMBER
antes de enviar la cadena de comando al host remoto.