这是一个带参数(set -e)的简单脚本:
#!/bin/bash
set -e
echo "begin"
read -r -d '' var <<- EOF
echo "hello"
EOF
echo "${var}"
我预计这里没有错误,但输出只是:
开始
&#34; echo $?&#34;返回1.为什么会发生这种情况?这里的read命令有什么问题。如果我注释掉&#34;设置-e&#34;,一切正常。
答案 0 :(得分:1)
由于您已指定-d ''
(无分隔符),因此没有完整的输入行,因此读取始终命中EOF并返回非零值。