linux - Bash - 写入 visudo

标签 linux bash

我想写一些东西到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)'

最佳答案

如果您想在通过 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 拼写检查站点,您可以在其中测试您的代码。我不知道是哪一个,但我会将其作为评论添加到我的答案下方。

关于linux - Bash - 写入 visudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58074793/

相关文章:

linux - 在Linux中查找某个文件并打印其创建和修改时间

bash - 使用 awk 或 sed 忽略文本文件中一行中反斜杠后面的逗号

c++ - 如何在树莓派上使用c++/libao/alsa通过USB声卡播放音频?

linux - Ubuntu 上的 CUDA 工具包在哪里?

linux - 是否可以将内核消息从特定进程传输到文件

java - Java中对/dev/raw/raw1的RandomAccessFile访问

regex - 如何使用 bash 脚本格式化这些数据

linux - 在 SSH 到 EC2 实例期间权限被拒绝(公钥)

bash - bash 函数可以在不同的脚本中使用吗?

homebrew - 有没有办法在我的 .bash_profile 中加快对 brew --prefix 的调用?