Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在脚本中仅抑制bash作业控制消息(中止、管道断开)_Bash_Jobs_Abort - Fatal编程技术网

在脚本中仅抑制bash作业控制消息(中止、管道断开)

在脚本中仅抑制bash作业控制消息(中止、管道断开),bash,jobs,abort,Bash,Jobs,Abort,我有以下设置: 中止程序 #包括 intmain(intargc,char**argv){assert(argc>=2);返回0;} //编译为“中止” test.sh #/usr/bin/bash 函数runpipe(){ 是|中止“$@” 测试$?-ne 0 | |回波正常 } 管路“$@” 运行test.sh 123仅打印OK。仅运行test.sh输出以下内容: aborter:aborter.cpp:2:int main(int,char**):断言'argc>=2'失败。 ./te

我有以下设置:

中止程序

#包括
intmain(intargc,char**argv){assert(argc>=2);返回0;}
//编译为“中止”
test.sh

#/usr/bin/bash
函数runpipe(){
是|中止“$@”
测试$?-ne 0 | |回波正常
}
管路“$@”
运行
test.sh 123
仅打印
OK
。仅运行
test.sh
输出以下内容:

aborter:aborter.cpp:2:int main(int,char**):断言'argc>=2'失败。
./test.sh:第3行:2521断管是
2522中止|中止器“$@”
在第二种情况下,如何抑制bash输出的“断管”和“中止”作业控制行? 我希望输出只是C++断言转储(第一行)。 这不需要编辑
aborter.cpp
test.sh
界面

在第二种情况下,如何抑制bash输出的“断管”和“中止”作业控制行

将bash stderr重定向为null,进程除外

exec 3<&2 2>/dev/null
function runpipe() {
    yes | aborter "$@" 2>&3
    test $? -ne 0 || echo OK
}
runpipe "$@"
exec 3/dev/null
函数runpipe(){
是|中止“$@”2>&3
测试$?-ne 0 | |回波正常
}
管路“$@”

您使用的是什么操作系统?将错误消息重定向到
dev/null
而不是std output
runpipe“$@”2>/dev/null
,谢谢!