我想模拟管道故障,所以我想我需要一个陷阱在一秒左右后将其杀死?
#!/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/