web-dev-qa-db-ja.com

gksudoは 'string' >>ファイルのSudoのようには機能しません

特定のネームサーバーを一時的に設定するために、2行のスクリプトを実行しようとしています。したがって、次回はとにかく上書きされるため、'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の代わりにgksudoを使用し、""\\を使用しないコマンドは正常に機能します。 GUIプロンプトに取り込む方法が残っています。

1
Peter Nerlich

あなたは非常に近かった、それを試してみてください:

#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""
3
chaos

ここで読むことができるように-- http://sernaonubuntu.wikidot.com/command-line:piping-and-directing-output >>記号はコマンドの結果をファイルに追加します

結果として 'nameserver XXX.XXX.XXX.XXX'コマンドは..よくコマンドが見つかりません:P

救助に来るのは、テキストをエコーし​​、その結果をファイルにパイプできるエコーコマンド(@chaosが正しく言ったように)です

彼のスクリプトのより単純なバージョンを使用できますが

#!/bin/sh
gksudo echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf
1
Rishabh