Я не хочу писать файл вручную, поэтому я сделал shell-скрипт. Есть ли способ написать и сохранить файл автоматически, не заставляя пользователя нажимать клавиши?
sudo nano blah
#write stuff to file
#save file
#continue
^ Это будет внутри * .sh файла
Или есть другой способ создать простой текстовый файл в сценарии?
$echo "Some text" > afile.txt
?Ответы:
Для более сложных последовательностей команд вы должны рассмотреть возможность использования
cat
команды со следующим документом . Основной форматСуществует два слегка различающихся поведения в зависимости от того, заключена ли в кавычку метка END_TEXT или нет:
метка без кавычек : содержимое пишется после обычных расширений оболочки
метка в кавычках : содержимое документа здесь обрабатывается буквально, без обычных расширений оболочки
Например, рассмотрим следующий скрипт
Результаты
а также
Если вы выводите команды оболочки из вашего скрипта, вам, вероятно, нужна форма в кавычках.
источник
END_TEXT
и просто использовать,CTRL-D
чтобы сигнализировать об окончании ввода. Смотрите, например, Как сигнализировать об окончании вводаДля этого не нужно возиться с редактором.
Вы можете добавить что-то в файл с помощью простой команды echo. Например
Добавит «Hello world» в файл
txt
. если файл не существует, он будет создан.Или, если файл уже существует, и вы хотите перезаписать его
Для первой строки: и
Для последующих строк.
В самом простом
.sh
сценарий может просто содержать набор команд эха.источник