我正在尝试编写一个两行脚本来临时设置一个特定的名称服务器。因此我只是将其输出'nameserver XXX.XXX.XXX.XXX'
到/etc/resolv.conf
文件,因为下次无论如何它都会被覆盖。问题是,当我尝试通过 gksudo 询问密码时,我收到错误,因为它试图将 gksudo 结果输出到文件。
更新:
我的当前文件现在是:
#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""
sudo
带有Instead ofgksudo
和不带有""
and的命令\\
可以正常工作。剩下的就是如何将其放入 GUI 提示符中。
答案1
您已经非常接近了,试试看:
#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""
答案2
正如您在这里看到的 - http://sernaonubuntu.wikidot.com/command-line:piping-and-directing-output>> 符号将命令的结果附加到文件
命令的结果'nameserver XXX.XXX.XXX.XXX'
是.. 嗯,未找到命令:P
解决问题的是 echo 命令(正如 @chaos 正确指出的那样),它回显文本并且该结果可以通过管道传输到文件
尽管你可以使用他的脚本的更简单版本
#!/bin/sh
gksudo echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf
答案3
您是否尝试过在 sted 类型中输入以下内容:
#!bin/sh
Case (nameserver) in
/bin/sh
nameserver = XXX.XXX.XXX XXX >>
gksudo 'echo' nameserver >>
resolvconf XXX.XXX.XXX.XXX >>
endl
这样也许能很好地发挥作用。