Criando um arquivo com algum conteúdo no script de Shell


20

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 receber os argumentos do usuário. Tudo, desde o caminho e o conteúdo, é predefinido. Como eu posso fazer isso?

Respostas:


24

Basta usar o redirecionamento de saída. Por exemplo

#!/bin/bash

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

Ele >gravará todos os arquivos stdinfornecidos por stdoutof echono arquivo outputfileaqui.

Como alternativa, você também pode usar teeum cano para isso. Por exemplo

echo "some file content" | tee outputfile

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

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.


Para pessoas que desejam ter um disjuntor em seu arquivo, consulte aqui: stackoverflow.com/a/9741470/10512595
BelovedFool

18

Eu acho que é superior usar um documento aqui para criar um novo arquivo em um script. É de aparência mais limpa, o que acredito incentivar a legibilidade.

Por exemplo:

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

O "-"no <<-é opcional, permitindo travessões com guias que será despojado quando o arquivo é criado. As aspas ao redor "EOF"impedem que o "aqui doc" faça substituições.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.