我想在sudo su test -c [command]
.
当我运行以下命令时,我得到的r1rnrnrnrrnr
不是\r1\r\n\r\n\r\n\r\r\n\r
:
SET_TEST_MSG='\r1\r\n\r\n\r\n\r\r\n\r'
sudo su test -c "/usr/bin/screen -dmS test bash -c \"echo $SET_TEST_MSG; exec bash\""
$PROG -n $PICKVM 0 -1 -d "$SET_TEST_MSG"
运行时如何保留反斜杠sudo su test -c [command]
?
您要求
su
通过一个 shell 运行该命令,然后运行另一个 shell。您需要确保正确转义所有内容,以便内壳能够看到您希望它看到的命令。这与此处的情况类似:Quoting in ssh $host $FOO 和 ssh $host "sudo su user -c $FOO" 类型构造
然而,我不确定你为什么要运行
sudo
,su -c
当你可以对 做同样的事情时sudo
,删除一个外壳并使转义变得更容易:或者,将最里面的命令放入脚本文件中,然后运行它。(只需确保目标用户可以运行该脚本即可。)