#!/bin/sh
$(./tool < input.data > output.another_data 2> errors)
echo $?
你好。我曾经有过如此愚蠢的简单脚本来调试我的工具。但是,仅将stderr重定向到文件而不将其打印到屏幕上并不是很方便。发现
tee
在这种情况下很有用。因此来到了这样的版本。
$(./tool < input.data > output.another_data 2>&1 | tee errors.txt)
在这里我被卡住了。与其获取工具的错误代码,不如获取tee的错误代码。您能否提供建议,以使管道中的工具而不是T恤出现错误?
提前致谢 :-)
所以,我在这里。现在,它读取第4行:=:找不到有关
$value=...
行的命令。这有什么问题吗?
===================
编辑:
#!/bin/bash
set -o pipefail
$value=$(./tool < input.data > output.another_data 2> errors)
if [ $? == 0 ]; then
case $value in
1) echo "out of bounds"
;;
2) echo "heap err"
;;
esac
fi
最佳答案
This答案说明了如何获取管道中所有命令的返回码。 – devnull
而且,根据您的编辑,您不应该说$value=...
,而应该说value=...
– devnull
关于bash - 如何在管道中获取应用程序的错误代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21508646/