Создание файла с некоторым содержимым в сценариях оболочки
Я немного новичок в Shell Scripting и хочу создать новый файл внутри скрипта и хочу добавить контент, а затем закрыть его. Он не должен принимать аргументы от пользователя. Все из пути и содержания предопределено. Как мне это сделать?
2 ответа
Просто используйте перенаправление вывода. Например
#!/bin/bash
echo "some file content" > /path/to/outputfile
>
напишу все stdin
предоставлено stdout
из echo
в файл outputfile
Вот.
В качестве альтернативы, вы также можете использовать tee
и труба для этого. Например
echo "some file content" | tee outputfile
Имейте в виду, что любой из примеров перезапишет существующий outputfile
,
Если вам нужно добавить существующий файл, используйте >>
вместо >
или же tee -a
,
Если вы не принимаете пользовательский ввод в этой строке, никакой пользовательский ввод не может изменить здесь поведение.
Я думаю, что лучше использовать здесь документ для создания нового файла в сценарии. Это выглядит чище, что, я считаю, способствует удобочитаемости.
Например:
cat > filename <<- "EOF"
file contents
more contents
EOF
"-"
в <<-
является необязательным, допускает отступы с вкладками, которые будут удалены при создании файла. Цитаты вокруг "EOF"
не позволяйте "здесь доку" делать какие-либо замены.