sudo here-document / concatenation? [duplicado]

0

Sou novo e estou tentando aprender scripts de shell.

Existe uma maneira de forçar uma concatenação e sobrepor os privilégios executando o seguinte comando de uma linha?

read domain; echo "127.0.1.1 $domain " >> /etc/hosts

O que estou tentando fazer é criar um script simples para digitar o domínio e adicioná-lo ao meu arquivo de hosts para desenvolvimento. Como meu arquivo de hosts tem permissões restritivas (mesmo sendo o único usuário com poderes de sudo) ele não é liberado.

O resultado ideal seria o seguinte:

127.0.0.1 foo.l

    
por chrisjlee 18.07.2011 / 17:50

1 resposta

1

Não é possível. >> é interpretado pelo shell, então o comando sudo termina efetivamente antes disso.

No entanto, você pode tentar

read domain; echo "127.0.1.1    $domain  " | sudo tee --append /etc/hosts 

e veja se isso funciona conforme necessário.

    
por 18.07.2011 / 18:01