Você esteve muito perto, tente isso:
#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""
Estou tentando fazer um script de duas linhas para definir temporariamente um servidor de nomes específico. Portanto, eu só envio 'nameserver XXX.XXX.XXX.XXX'
para o arquivo /etc/resolv.conf
, porque ele é sobrescrito da próxima vez. A coisa é, quando eu tento pedir a senha via gksudo, recebo um erro porque ele tenta mostrar o resultado do gksudo no arquivo.
ATUALIZAÇÃO:
Meu arquivo atual é agora:
#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""
O comando com sudo
em vez de gksudo
e sem o ""
e \
funciona como deveria. Permanece como obtê-lo no prompt da GUI.
Você esteve muito perto, tente isso:
#!/bin/sh
gksudo "bash -c \"echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf\""
Como você pode ler aqui - link o > > símbolo acrescenta o resultado do comando ao arquivo
O resultado do comando 'nameserver XXX.XXX.XXX.XXX'
é .. bem comando não encontrado: P
O que vem para o resgate é o comando echo (como @chaos disse com razão) que ecoa o texto e esse resultado pode ser canalizado para o arquivo
Embora você possa usar uma versão mais simples do script dele
#!/bin/sh
gksudo echo 'nameserver XXX.XXX.XXX.XXX' >> /etc/resolv.conf
Você tentou isso no tipo sted:
#!bin/sh
Case (nameserver) in
/bin/sh
nameserver = XXX.XXX.XXX XXX >>
gksudo 'echo' nameserver >>
resolvconf XXX.XXX.XXX.XXX >>
endl
e pode funcionar bem assim.