Я не хочу записывать файл вручную, поэтому я создал сценарий оболочки.Есть ли способ автоматически записать и сохранить файл, не заставляя пользователя нажимать клавиши?
sudo nano blah#write stuff to file#save file#continue
^ Это будет внутри файла *.sh
Или есть другой способ создать простой текстовый файл в скрипте?
Для более сложных последовательностей команд вам следует рассмотреть возможность использования cat команда с помощью вот документ. Основной формат - это
command > file << END_TEXTsome text heremore text hereEND_TEXT
Существует два слегка отличающихся поведения в зависимости от того, заключена ли метка END_TEXT в кавычки или без кавычек:
метка без кавычек: содержимое записывается после обычных расширений оболочки
метка в кавычках: содержимое документа here обрабатывается буквально, без обычных расширений оболочки
Например, рассмотрим следующий сценарий
#!/bin/bashvar1="VALUE 1"var2="VALUE 2"cat > file1 << EOF1do some commands on "$var1" and/or "$var2"EOF1cat > file2 << "EOF2"do some commands on "$var1" and/or "$var2"EOF2
Результаты таковы
$ cat file1do some commands on "VALUE 1" and/or "VALUE 2"
и
$ cat file2do some commands on "$var1" and/or "$var2"
Если вы выводите команды оболочки из своего скрипта, вам, вероятно, нужна форма в кавычках.
Я подозреваю, что вы задаете здесь неправильный вопрос. Существуют гораздо более простые способы записи в файл программным способом, чем пытаться управлять таким редактором, как nano. Вместо этого расскажите нам, что вы хотите сделать с файлом.
Вы просите решение что-то вроде [Autoit](AutoIt Scripting Language - AutoIt /) для Windows, которые могут автоматизировать программы с графическим интерфейсом, среди прочего, или как иметь возможность писать текст в виде сценария оболочки, например $echo "Some text" > afile.txt ?
@Zarkopafilis - Я отредактировал ваш вопрос, чтобы было понятнее, что вы имеете в виду. Если я вас неправильно понял, вы всегда можете вернуть его обратно. Я также опубликовал ответ для вас.