[英]Assign contents of file to variable over remote ssh from a script running in Jenkins
我已经从脚本打开了一个远程ssh会话,并且在远程服务器上有一个包含版本信息的文件。 我正在尝试将该版本分配给变量,并将当前版本内容移至与版本相同的文件夹名称。
主脚本在jenkins中运行
我正在做这样的事情
ssh -i /home/user/.ssh/id_rsa -t -t remoteServer<<EOF
cd $WEB_DIR
VERSION=$(cat $WEB_DIR/version.info)
mv -f $WEB_DIR $BACKUP_DIR/$VERSION
exit
EOF
我的VERSION变量始终为空。 当我在该服务器上本地运行时,它为我提供了版本值。 脚本中的远程ssh会话有所不同
实际上,我分两步找到了解决方法。
$ WEB_DIR设置为主脚本中设置的局部变量。
$WEB_DIR="/usr/local/tomcat/webapps/ROOT"
OLD_VERSION=$(ssh -i /home/user/.ssh/id_rsa -tt user@remoteServer "cat $WEB_DIR/version.info")
ssh -i /home/user/.ssh/id_rsa -t -t user@remoteServer<<EOF
cd $WEB_DIR
mv -f $WEB_DIR $BACKUP_DIR/$OLD_VERSION
# I am executing more commands in here
exit
EOF
如果要使用局部变量,必须在第一个命令中使用双引号“”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.