如何将参数写入文件?

如何将参数写入文件?

我正在尝试将一些内容写入文件,同时更改一些将通过参数传递的值。

我关注了这个答案 使用 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...

因为不允许我设置参数的变量。那么我该如何实现呢?提前致谢。

答案1

首字母周围的引号"EOF"可防止变量扩展。要在 heredoc 文本中使用变量,您需要一个不带引号的分隔符:

cat > filename <<- EOF
Hello $1
More contents, etc...
EOF

但是你必须小心其余内容中的 shell 语法。

另一种选择是单独编写此行,然后使用 heredoc 编写固定内容:

echo "Hello $1" > filename
cat >> filename <<- "EOF"
More contents, etc...
EOF

>>请注意初始写入后附加的用途。

相关内容