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?
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:
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.
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.