这是一个错误,我没有找到任何关于后,无情的搜索
我正在尝试在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:内部:未绑定变量
如果你执行这个脚本,“内部”变量不会被打印出来。为什么我不能在子进程中分配变量呢?谢谢!
1条答案
按热度按时间3yhwsihp1#
当使用该类型的heredoc(
<<WORD
)时,必须使用\$
对文字$
字符进行转义。反勾号字符(′)也是如此:生成等效引导脚本的另一种方法是使用字面heredoc形式
<<'WORD'
:检查
~/bootstrap.sh
的内容是开始调试的好地方。