首页 / 知识
关于unix:在bash中杀死后如何抑制终止消息?
2023-04-16 11:39:00

How to suppress Terminated message after killing in bash?
您如何抑制在杀死键盘后出现的
我尝试了
我知道另一个解决方案涉及调用
为了使消息静音,必须在生成消息时重定向 这是一个非常简单的示例,它杀死了最新的后台命令。 (在此处了解有关$!的更多信息。)
因为
我从bash那里被带到这里:默默地杀死后台函数进程。 简短的答案是你不能。 Bash始终打印前台作业的状态。监视标志仅适用于后台作业,并且仅适用于交互式外壳,不适用于脚本。 请参阅Jobs.c中的notify_of_job_status()。 如您所说,您可以重定向以便标准错误指向/ dev / null,但是您会错过任何其他错误消息。您可以通过在运行脚本的子外壳中进行重定向来使其成为临时的。这使原始环境独自存在。
这将丢失所有错误消息,但只会丢失该脚本发出的错误消息,而不会丢失该Shell中运行的任何其他消息。 您可以通过重定向新的filedescriptor指向该位置来保存和恢复标准错误:
但是我不建议这样做-从第一个开始的唯一好处就是,它节省了子外壳程序调用,同时更加复杂,并且如果脚本更改了文件描述符,它甚至可以更改脚本的行为。 编辑: 有关更适当的答案,请检查马克·埃德加(Mark Edgar)给出的答案
受MarcH的回答启发。我按照他的建议使用
或简单地
解决方案:使用SIGINT(仅在非交互式外壳中有效) 演示:
http://thread.gmane.org/gmane.comp.shells.bash.bugs/15798
也许通过调用
禁用作业通知的另一种方法是将命令置于
这也适用于killall(对于那些喜欢它的人):
禁止显示消息...我在后台模式下运行mpg123。 这就是我们所有人想要的吗? 不需要:
通缉:
如您所见,没有作业结束消息。在bash脚本中也对我有用,对于后台进程也是如此。 'set + m'禁用当前shell的作业控制(请参阅"帮助集")。因此,如果您在子外壳程序中输入命令(如括号中所示),则不会影响当前外壳程序的作业控制设置。唯一的缺点是,如果要检查它是否已终止或评估返回代码,则需要将后台进程的pid返回到当前shell。 我发现将kill命令放入函数中,然后使该函数后台运行会抑制终止输出
简单:
优点?可以使用任何信号 例如:
在脚本中添加"
disown为我做了完全正确的事情-exec 3>&2有很多原因是有风险的-set + bm似乎在脚本内不起作用,仅在命令提示符下起作用 |
最新内容
相关内容
linux脚本命令修改?
linux脚本命令修改?,密码,系统,文件,资料,工具,软件,基础,地址,标准,命令,linux中想在脚本中实现修改一个ip地址参数的配置文件,用sed命令如何linux脚本命令教学?
linux脚本命令教学?,标准,数据,系统,脚本,代码,流程,官网,底部,命令,变量,linux怎么运行脚本1、首先要下载Ubuntu系统,在百度搜索Ubuntu,打开Ubulinux命令注释脚本?
linux命令注释脚本?,代码,工具,名称,工作,脚本,发行,服务,环境,数据,基础,linuxshell编程方法1:sed -i s/被替换的内容/要替换成的内容/ file脚本linux上运行命令?
脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,typescript脚本中怎样运行Linux命令?1、Script可用于记录当前用户linux修改脚本的命令?
linux修改脚本的命令?,系统,密码,服务,工作,工具,环境,信息,百度,代码,脚本,求一个批量ssh登录linux服务器,修改配置文件的脚本参考一下。_百linux运行命令的脚本?
linux运行命令的脚本?,系统,服务,工具,脚本,意外,技术,分析,文件,方法,命令,sh文件在linux下如何运行Linux下面运行 SH文件步骤如下:查看目录shlinux脚本命令单引号?
linux脚本命令单引号?,系统,工作,美元,地址,命令,信息,情况,标准,管理,引号,linux的双引号里的单引号首先在Linux系统中,使用echo $ 0来显示如linux调用函数的命令?
linux调用函数的命令?,系统,代码,策略,上调,时间,设计,通信,网络,设备,项目,如何在Linux内核里增加一个系统调用?在一个进程中创建3个线程,名字执行linux脚本命令行?
执行linux脚本命令行?,工具,位置,地方,环境,数据,状态,暂停,增长,系统,基础,运行linux脚本,遇到要按回车键,怎么让它自动应答,继续运行脚本?1linux暂停脚本命令?
linux暂停脚本命令?,暂停,系统,状态,工具,命令,进程,材料,电脑,公开,名称,Linux的终端有暂停命令吗?类似于Windows的PAUSE命令的1、C语言在Winlinux运行脚本时未找到命令?
linux运行脚本时未找到命令?,系统,信息,环境,软件,异常,官网,底部,电脑,平台,为什么说,linux无法找到脚本文件是什么意思?1、意思是:找不到执行linux运行脚本的命令?
linux运行脚本的命令?,系统,工具,代码,服务,脚本,状态,密码,环境,位置,暂停,linux下如何运行可执行文件1、file 文件名 可以查看文件类型:或者: