Створення файлу з деяким вмістом у сценарії Shell


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.

Якщо ви не приймаєте введення користувача в цьому рядку, жоден ввід користувача не може змінити поведінку тут.


Для людей , які хочуть мати лінійний вимикач всередині їх файлу, дивіться тут: stackoverflow.com/a/9741470/10512595
BelovedFool

18

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

Наприклад:

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

"-"В НЕ <<-є обов'язковим, що дозволяють вкладках абзаців , які будуть роздягли при створенні файлу. Цитати навколо "EOF"заважають "тут док" робити будь-які заміни.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.