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


20

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

Ответы:


24

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

#!/bin/bash

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

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

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

echo "some file content" | tee outputfile

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

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

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


Для людей, которые хотят иметь
разрыв

18

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

Например:

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.