我想写一些东西给visduo,但是我不能写/etc/sudoers
for SERVER in $(cat some.txt); do
ssh -q -o StrictHostKeyChecking=no root@$SERVER '
echo 'm2madm ALL=(ALL:ALL) NOPASSWD:/sbin/iptables -L' | sudo EDITOR='tee -a' visudo
'问题出在“
但是我真的不知道我该怎么办,你能帮我吗?
输出为:
domain_check.sh: line 25: syntax error near unexpected token `('
domain_check.sh: line 25: `echo ('m2madm ALL=(ALL:ALL) NOPASSWD:/sbin/iptables -L' | sudo EDITOR='tee -a' visudo)'发布于 2019-09-24 15:15:11
如果您希望在通过ssh发送的字符串中使用变量,请使用"将该字符串括起来。在字符串中,您应该使用单引号',或者对每个双引号\"进行转义。
您的问题发生是因为您在想要关闭字符串之前“关闭”了该字符串。下面的方法应该是可行的。
for SERVER in $(cat some.txt); do
ssh -q -o StrictHostKeyChecking=no root@$SERVER "
echo 'm2madm ALL=(ALL:ALL) NOPASSWD:/sbin/iptables -L' | sudo EDITOR='tee -a' visudo
"
done附注:有一个shell拼写检查站点,您可以在其中测试您的代码。我不知道是哪一个,但我会在我的答案下面添加一个评论。
https://stackoverflow.com/questions/58074793
复制相似问题