На этот вопрос уже есть ответ:
Я пытаюсь создать двухстрочный сценарий для временной установки определенного сервера имен. Поэтому я просто вывожу '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
и без ""
и ] \\
работает как надо. Остается как ввести его в подсказку графического интерфейса.
Вы были очень близки, пробуете это:
#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""
Поскольку можно читать здесь - 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
Имейте Вас, попробовал это в типе коня в этом:
#!bin/sh
Case (nameserver) in
/bin/sh
nameserver = XXX.XXX.XXX XXX >>
gksudo 'echo' nameserver >>
resolvconf XXX.XXX.XXX.XXX >>
endl
и это могло бы хорошо работать этот путь.