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