shell引号嵌套问题

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'"

应该不行吧

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^