Создание файла с некоторым содержимым в сценариях оболочки

Я немного новичок в Shell Scripting и хочу создать новый файл внутри скрипта и хочу добавить контент, а затем закрыть его Он не должен принимать аргументы от пользователя. Все из пути и содержания предопределено. Как я могу это сделать?

20
задан 5 January 2018 в 10:11

2 ответа

Просто используйте перенаправление вывода. Э.Г.

#!/bin/bash

echo "some file content" > /path/to/outputfile

> запишет все stdin, предоставленные stdout of echo, в файл outputfile здесь.

В качестве альтернативы, вы также можете использовать tee и трубу для этого. Э.Г.

echo "some file content" | tee outputfile

Имейте в виду, что любой из примеров перезапишет существующий outputfile.

Если вам нужно добавить к существующему в настоящее время файлу, используйте >> вместо > или tee -a.

Если вы не принимаете пользовательский ввод в этой строке, никакой пользовательский ввод не может изменить здесь поведение.

0
ответ дан 5 January 2018 в 10:11

Я думаю, что лучше использовать здесь doc для создания нового файла в скрипте. Это выглядит чище, что, я считаю, способствует удобочитаемости.

Например:

cat > filename <<- "EOF"
file contents
more contents
EOF

"-" в <<- является необязательным, допускает отступы с вкладками, которые будут удалены при создании файла. Кавычки вокруг "EOF" не позволяют "here doc" делать какие-либо замены.

0
ответ дан 5 January 2018 в 10:11

Другие вопросы по тегам:

Похожие вопросы: