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 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 [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.