linux - 如何模拟管道故障?

标签 linux bash

我想模拟管道故障,所以我想我需要一个陷阱在一秒左右后将其杀死?

#!/bin/bash

set -u
set -o pipefail

cat /dev/zero | cat | cat

但是这样的陷阱是如何实现的呢?

最佳答案

你可以这样做:

echo "a" | grep "b" | sed 's/a/c/g'
echo $?

set -o pipefail
echo "a" | grep "b" | sed 's/a/c/g'
echo $?

它打印:

0
1

中间的grep返回1退出码(失败),所以设置pipefail后,整体退出码为 1。所以 pipefail 正在工作,因为它应该返回管道中任何命令的最后一个非零退出代码。

关于linux - 如何模拟管道故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19113590/

相关文章:

linux - ssh 连接超时

编译时没有段错误

javascript - 如何处理 mongo 脚本中的命令行参数?

python - 重命名多个文件,但仅删除部分文件名

ruby - Ruby HTTP 流量的代理

bash - 如何在不输入密码的情况下从命令行自动生成 htpasswd?

node.js - 将参数/通配符定义为 npm 脚本键/名称的一部分

linux - (bash) 使用 cat 将多行文本缩进到 $VAR?

linux - Raspberry Pi 上的 ElasticSearch 退出

linux - 从内核驱动程序调用同步