Я немного новичок в 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"препятствуют тому, чтобы "здесь док" делал любые замены.