Я пытаюсь записать, что некоторое содержание в файл и в то же время изменяет некоторые значения, которые будут переданы через args.
Я следовал этому ответу, Создающему файл с некоторым содержанием в сценариях Shell
cat > filename <<- "EOF"
File contents
More contents
EOF
Таким образом позвольте, говорят, когда я запускаю скрипт как это:
./script Abraham
и я хочу записать в файле что-то как:
Hello Abraham
More contents, etc...
Я произошел из среды JavaScript, таким образом, я пробовал что-то как:
`Hello ${1}, etc...`
но то, что я проникал внутрь файла, было:
Hello $1
More contents, etc...
потому что не позволяет мне установить переменную аргумента. Таким образом, как я могу выполнить это?Заранее спасибо.
Кавычки вокруг начальной буквы "EOF"
предотвратите переменное расширение. Для использования переменных в heredoc тексте Вам нужно к неупомянутому разделителю:
cat > filename <<- EOF
Hello $1
More contents, etc...
EOF
Но затем необходимо будет быть осторожны относительно синтаксиса оболочки в остальной части содержания.
Другая опция состоит в том, чтобы записать эту строку отдельно и записать фиксированное содержание с помощью heredoc:
echo "Hello $1" > filename
cat >> filename <<- "EOF"
More contents, etc...
EOF
Отметьте использование >>
для добавления после начальной записи.