【问题标题】:Use variable with the EOF to generate a file使用带有 EOF 的变量来生成文件
【发布时间】:2017-11-17 09:46:58
【问题描述】:

我正在尝试根据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
})

感谢您的帮助!

【问题讨论】:

  • 从 msg 中删除引号,其中明确表示,不要扩展任何变量或通配符。
  • @grail 啊...谢谢,刚才走错方向了。你能回答这个问题以便我标记它吗?

标签: bash


【解决方案1】:

Heredocs 有几种不同的使用方式:

  1. 标准 - 这允许扩展参数,但必须使结束词硬靠左边缘:

cat <<EOF ... EOF

  1. 缩进 - 在这里您可以使用制表符来缩进文本和结束词

cat <<-EOF [tab][tab]... [tab]EOF

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

cat <<'EOF' ... EOF

您也可以将 2 和 3 结合起来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多