1

Внутри bash-скрипта я хотел бы создать файл с заданным содержимым.
Содержимое должно содержать переменные выражения "$ 1", "$ 2" ...

#!/ Бен / ш
кот <мой файл
#!/ Бен / ш
command1 $ 1
command2 $ 2
command3 $ 3
EOF

Созданный файл предназначен для использования с переменными:
./myfile param1 param2 param3

Но myfile появляется без переменных

$ cat myfile  

#!/ Бен / ш
command1
command2
command3

1 ответ1

1

Правильный формат должен быть:

#!/bin/sh
cat <<EOF > myfile
#!/bin/sh
command1 \$1
command2 \$2
command3 \$3
EOF

Были внесены два изменения:

  • избежать $, используя \
  • пометьте <<EOF в начале раздела, который должен быть записан в myfile (для получения дополнительной информации см. здесь )

После запуска этого скрипта результат

cat myfile 
#!/bin/sh
command1 $1
command2 $2
command3 $3

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .