我已经从脚本打开了远程 ssh session ,并且在远程服务器上有一个包含版本信息的文件。 我正在尝试将该版本分配给变量并将当前版本内容移动到与版本相同的文件夹名称。
主要脚本在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 session 有所不同
最佳答案
实际上我找到了分两步完成的方法。
$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
如果想使用局部变量,则必须在第一个命令中使用双引号“”。
关于linux - 从 Jenkins 中运行的脚本通过远程 ssh 将文件内容分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25431216/