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

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

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