我已经从脚本打开了一个远程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会话有所不同答案 0 :(得分:1)
实际上我找到了通过两个步骤完成它的方法。
$ 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
使用双引号&#34;&#34;如果想要使用局部变量,必须在第一个命令中。