shell引号嵌套
原命令:
args='$setcachecfg permitLogin 1'
ssh root@1.1.1.1 "ssh root@2.2.2.2 'cd /root/assets && ./cmd_doCommand.sh ${args}' && echo 脚本执行完成"
实现效果:
传到相应服务器上执行:
这里$setcachecfg为字符串,不是变量
cd /root/assets && ./cmd_doCommand.sh '$setcachecfg permitLogin 1'
如何修改原命令,或者有什么办法,去目标服务器执行命令
在shell中,单引号和双引号的区别比较到,如果需要引用变量,一定要用双引号,单引号表示引用原义
args="$setcachecfg permitLogin 1"
ssh root@1.1.1.1 "ssh root@2.2.2.2 \"cd /root/assets && ./cmd_doCommand.sh ${args}\" && echo 脚本执行完成"
你需要它最终是个字符串对吗
外面再套一层双引号
args="'$setcachecfg permitLogin 1'"
应该不行吧
不知道你这个问题是否已经解决, 如果还没有解决的话: