繁体   English   中英

通过Jenkins中运行的脚本通过远程ssh将文件内容分配给变量

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM