Подтвердить что ты не робот

Создание файлов с некоторым содержимым с помощью оболочки script

Мне нужно настроить сервер с несколькими файлами, и я хочу сделать это программно.

Мне нужно создать файлы, скажем /home/a.config,/var/spool/b.config,/etc/c.config

файлы имеют некоторое содержимое (несколько строк).

Я хочу создать ОДНУ оболочку script, которая может создать все три файла с несколькими строками (около 10). Я хотел бы знать, как я могу использовать команду CAT для этого. (внутри оболочки script).

Я смотрю что-то вроде этого

echo " going to create  /home/a.config"

cat "HOW CAN I HAVE MULTIPLE LINES HERE?? " >  /home/a.config 

спасибо

4b9b3361

Ответ 1

Вы можете использовать документ здесь:

cat <<EOF >/home/a.config
first line
second line
third line
EOF

Вы можете поместить некоторые из них в один и тот же script.

Ответ 2

Так же:

#!/bin/bash

var="your text"
echo "simply put,
just so: $var" > a.config

Для получения дополнительной информации см. раздел "Ввод/вывод" abs.
Надеюсь, это поможет.

Ответ 3

Файл = "/TMP/test.txt"
echo "Добавление первой строки" > $file
echo "Добавление первой строки заменено" > $file
echo "Добавление второй строки" → $file
echo "Добавление третьей строки" → $file
cat $file

, чтобы добавить/заменить контент (здесь фактическое содержимое было заменено на вторую строку)
добавить |
Результат
Добавление первой строки заменено
Добавление второй строки
Добавление третьей строки

Ответ 4

>\#!/bin/bash
>
>var="your text" <br>
>echo "simply put, <br>
>just so: $var" > a.config

Обратите внимание, что вам также необходимо избегать определенных символов, чтобы они не мешали тому, что вы пытаетесь сделать, например, $`и "все разломят такой оператор, если перед ним не будет обратная косая черта, то есть \`\ $или\"

поэтому, если мы определим следующее:

вар = "100"

следующее не будет вести себя так, как ожидалось:   

эхо "просто положите,
просто" одолжить "меня US $$ var" > a.config

но следующее будет работать правильно:

эхо "просто положите,
просто\" lend \ "меня US\$$ var" > a.config

Ответ 5

Если в тексте есть переменные, такие как $1 или $HOMEDIR, они обычно оцениваются и заменяются фактическими значениями. Если вы хотите предотвратить их замену, вам нужно указать строку ограничения открытия (EOF в примере ниже) с одинарной кавычкой 'EOF', двойную кавычку "EOF" или предшествующую ей обратную косую черту \EOF

Строка ограничения закрытия остается как есть. EOF

Это особенно полезно, если вы пишете сценарии оболочки в файл.

cat << 'EOF' >/etc/rc.d/init.d/startup
case $1 in
    start)
        start 
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
       pid=$(tomcat_pid)
        if [ -n "$pid" ]
        then
           echo "Tomcat is running with pid: $pid"
        else
           echo "Tomcat is not running"
        fi
        ;;
esac

EOF

См. Пример 19.7 Замена параметра Завершена в Здесь Документы