使用带有EOF的变量生成文件

时间:2017-06-15 04:04:19

标签: bash

我正在尝试根据this SO之后的shell变量生成.js文件。但是,该脚本仍使用APP_VERSION: $bumped_version

创建文件

这是我的剧本:

version=9.9.9

cat > ./constant/app.js <<'msg'
export default Object.freeze({
  APP_VERSION: $bumped_version
})
msg

生成的app.js:

export default Object.freeze({
  APP_VERSION: $bumped_version
})

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

Heredocs可以通过几种不同的方式使用:

  1. 标准 - 这允许扩展参数,但必须在左边缘上使用关闭字:
  2. cat <<EOF ... EOF

    1. 缩进 - 在这里您可以使用制表符缩进文字和结束词
    2. cat <<-EOF [tab][tab]... [tab]EOF

      1. 引用 - 此版本可防止任何扩展,如果您使用它来创建另一个带变量的脚本,这可能很有用。 如果输出到文件,则每行开头的所有选项卡都将被删除
      2. cat <<'EOF' ... EOF

        您也可以将2和3结合使用。