为什么bash在遇到read命令时会使用参数-e(set -e)停止?

时间:2017-02-28 06:13:06

标签: linux bash

这是一个带参数(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;,一切正常。

1 个答案:

答案 0 :(得分:1)

由于您已指定-d ''(无分隔符),因此没有完整的输入行,因此读取始终命中EOF并返回非零值。