Я трохи новачок у Shell Scripting, і я хочу створити новий файл всередині сценарію і хочу додати вміст, а потім закрити його. Він не повинен брати аргументи у користувача. Все від шляху та змісту заздалегідь визначене. Як я можу це зробити?
Я трохи новачок у Shell Scripting, і я хочу створити новий файл всередині сценарію і хочу додати вміст, а потім закрити його. Він не повинен брати аргументи у користувача. Все від шляху та змісту заздалегідь визначене. Як я можу це зробити?
Відповіді:
Просто використовуйте переадресацію виводу. Напр
#!/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"заважають "тут док" робити будь-які заміни.