gksudo 对‘字符串’>>文件的作用不像 sudo

gksudo 对‘字符串’>>文件的作用不像 sudo

我正在尝试编写一个两行脚本来临时设置一个特定的名称服务器。因此我只是将其输出'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

这样也许能很好地发挥作用。

相关内容