É possível fazer um documento aqui em uma linha ou um eco textual?

6

Muitas vezes me vejo testando um comando (por exemplo, cat file | awk 'stuff' ) no shell e, quando estou satisfeito com a maneira como ele funciona, adiciono o comando a um arquivo de script.

Digamos que este é o comando que eu criei cat file.txt | awk -F '|' '$3 == "\"0\""'

Como posso rapidamente fazer o eco disso em um arquivo sem ter que escapar primeiro das coisas e sem ter que usar o mouse?

Existe uma maneira de fazer algo como

echo --verbatim the_command_with_lots_of_quotes_and_everything >> file.sh

ou

cat <<'EOF'\n the_command \n EOF >> file.sh ?

    
por Bloke 20.01.2016 / 15:08

1 resposta

3

Não tão rápido, mas zsh (e bash talvez?) tem esse recurso chamado fc , não tenho certeza do que ele significa, mas se você digitar, parece abrir o comando em qualquer que seja seu $EDITOR é.

Ou talvez você possa fazer history | tail -1 >> file .

Em termos de fazer um heredoc em uma linha, isso:

~$ echo -e "cat << EOF\nhello\n12345\nEOF\n" | sh
hello
12345

é o mais próximo que consigo pensar.

    
por 20.01.2016 / 15:29