我需要有关bash报价规则的帮助:
我知道我可以运行这样的命令:
namespace ‘rlang’ 0.1.2 is being loaded, but >= 0.2.2 is required
ERROR: lazy loading failed for package ‘tidyselect’
但是当我需要一个更复杂的命令(例如,这样不起作用的命令)时,我迷路了:
/usr/bin/ssh root@my_srv "ls /usr/local/bin"
直接在远程服务器中启动的同一命令运行正常:
/usr/bin/ssh root@my_srv "awk '/dbname/{print $NF}' /var/myfile | sed "s/'//g" | sed 's/,//g'"
答案 0 :(得分:1)
您需要使用\
来转义内部双引号:
"awk '/dbname/{print \$NF}' /var/myfile | sed \"s/'//g\" | sed 's/,//g'"
答案 1 :(得分:0)
在SSH登录命令之后,脚本或命令也可以直接编写而无需双引号。