Я немного новичок в Shell Scripting и хочу создать новый файл внутри скрипта и хочу добавить контент, а затем закрыть его. Он не должен принимать аргументы от пользователя. Все из пути и содержания предопределено. Как мне это сделать?
Я немного новичок в Shell Scripting и хочу создать новый файл внутри скрипта и хочу добавить контент, а затем закрыть его. Он не должен принимать аргументы от пользователя. Все из пути и содержания предопределено. Как мне это сделать?
Ответы:
Просто используйте перенаправление вывода. Например
#!/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
Параметр "-"
in <<-
является необязательным, позволяя использовать отступы с вкладками, которые будут удалены при создании файла. Кавычки вокруг этого "EOF"
препятствуют тому, чтобы "здесь док" делал любые замены.