Criando um arquivo com algum conteúdo no script do shell

13

Sou um pouco novo no Shell Scripting e quero criar um novo arquivo dentro do script e quero adicionar conteúdo e depois fechá-lo. Não deve levar os argumentos do usuário. Tudo a partir do caminho e conteúdo é predefinido. Como posso fazer isso?

    
por Gowtham Gopalakrishnan 14.07.2013 / 13:47

2 respostas

18

Use apenas o redirecionamento de saída. Por exemplo,

#!/bin/bash

echo "some file content" > /path/to/outputfile

O > gravará todos os stdin fornecidos pelo stdout de echo para o arquivo outputfile aqui.

Como alternativa, você também pode usar tee e um pipe para isso. Por exemplo,

echo "some file content" | tee outputfile

Esteja ciente de que qualquer um dos exemplos irá sobrescrever um outputfile existente.

Se você precisar anexar a um arquivo existente no momento, use >> em vez de > ou tee -a .

Se você não aceitar a entrada do usuário nesta linha, nenhuma entrada do usuário poderá alterar o comportamento aqui.

    
por gertvdijk 14.07.2013 / 13:50
11

Acho melhor usar um aqui para criar um novo arquivo em um script. É mais limpo, o que eu acredito que incentiva a legibilidade.

Por exemplo:

cat > filename <<- "EOF"
file contents
more contents
EOF

O "-" em <<- é opcional, permitindo recuos com guias que serão despojado quando o arquivo é criado. As aspas em torno do "EOF" impedem que o "doc aqui" faça quaisquer substituições.

    
por Aaron Hall 03.08.2016 / 21:52

Tags