Adicionando uma quebra de linha mais uma linha de texto por baixo - em uma única linha, segmento único, codepiece

0

Eu quero adicionar uma quebra de linha mais uma linha de texto abaixo , em uma única linha, segmento único, código de peça.

Uma linha única, de vários segmentos, que eu conheço é esta:

sudo bash -c "echo '' >> /etc/bash.bashrc" && sudo bash -c "echo 'alias www=\"cd /var/www/html\"' >> /etc/bash.bashrc"

Esta é uma única linha, mas não um único segmento (é necessário um && ).

Por outro lado, heredocument é de segmento único (sem && ), mas de várias linhas, e estou procurando por uma única linha, caminho de segmento único. Você conhece algum?

    
por JohnDoea 07.05.2017 / 10:15

2 respostas

1

Aqui estão algumas frases para você jogar e fazê-las funcionar com sudo :

printf '%s\n' a '' 'alias www="cd /var/www/html"' . ,p q | ed -s /etc/bash.bashrc

mesmo com uma string aqui:

ed -s /etc/bash.bashrc <<< $'a\n\nalias www="cd /var/www/html"\n.\n,p\nq'

substitua ,p por w para editar no local; ou

sed -e '${G;G;s|$|alias www="cd /var/www/html"|' -e'}' /etc/bash.bashrc

adicione -i ( gnu sed ) ou -i '' ( bsd sed ) para editar no local; ou

cat <<< $'\nalias www="cd /var/www/html"' >> /etc/bash.bashrc
    
por 09.05.2017 / 23:05
4
printf '\nalias www="cd /var/www/html"\n' | sudo tee -a /etc/bashrc

printf interpreta saídas de barra invertida no estilo C incluindo \n . tee -a abre o arquivo fornecido para anexar e grava a entrada que recebe nele.

Você também pode aplicar isso ao seu bash -c :

sudo bash -c "printf '\nalias www=\"cd /var/www/html\"\n' >> /etc/bashrc"

que não usa operadores de shell de nível superior, se você realmente quiser evitá-los.

    
por 07.05.2017 / 10:32

Tags