linux - 为什么 bash 遇到 read 命令时以参数 -e (set -e) 停止?

标签 linux bash

这是一个带有参数 (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/

相关文章:

linux - 是否可以测量 Linux 进程的累积 IO 等待时间?

regex - 使用 sed 提取两个斜杠之间的字符串

linux - Bash 脚本删除文件名中的最后三个字符

linux - 按共享相同分隔符的列进行数字排序

linux - 是否可以使用 Git 扩展或 Git GUI 来管理远程 linux ftp 服务器上的文件,如本地存储库

bash 删除行条件

linux - 使用AWK删除与html标签匹配的字符(不是正则表达式)

macos - 在 OS X 中使用 find 来识别正确的权限

linux - RPM SPEC Systemd 启用并启动

linux - 适用于 Linux 的 Visual Studio 代码。工作下载链接