这是一个带有参数 (set -e) 的简单脚本:
#!/bin/bash
set -e
echo "begin"
read -r -d '' var <<- EOF
echo "hello"
EOF
echo "${var}"
我预计这里没有错误,但输出只是:
begin
还有“echo $?”返回 1. 为什么会这样?这里的读取命令有什么问题。如果我注释掉“set -e”,一切正常。
最佳答案
由于您指定了 -d ''
(无定界符),因此没有完整的输入行,因此读取始终达到 EOF 并返回非零值。
关于linux - 为什么 bash 遇到 read 命令时以参数 -e (set -e) 停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42501480/