【问题标题】:Unbound variable未绑定变量
【发布时间】:2022-12-10 12:25:15
【问题描述】:

这是我经过不懈搜索后一无所获的错误

我正在尝试在 EC2 实例(EMR 集群 v6.4.0 的一部分)中运行引导文件。由于引导操作需要超过 5 分钟,我们将其作为表单的子进程执行

#!/bin/bash

var="var"
cat << EOF > ~/bootstrap.sh
intra="intra"
echo $var
echo $intra
EOF
/bin/bash ~/bootstrap.sh
exit 0

但是 var "intra" 从未设置,引导操作返回错误行 n: intra: unbound variable

如果您执行该脚本,则不会打印“intra”var。 为什么我不能在子流程中分配变量?谢谢!

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    当使用这种类型的 heredoc 时,您必须使用 $ 转义文字 $ 字符:

    #!/bin/bash
    var="var"
    cat << EOF > ~/bootstrap.sh
    intra="intra"
    echo $var
    echo $intra
    EOF
    /bin/bash ~/bootstrap.sh
    exit 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-14
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 2017-03-31
      • 2023-03-07
      相关资源
      最近更新 更多