- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
假设我有一个 bash 脚本 (foo.sh
),其形式非常简单,如下所示:
echo "hello"
sleep 100 &
ps ax | grep sleep | grep -v grep | awk '{ print $1 } ' | xargs kill -9
echo "bye"
第三行模仿pkill
,我在Mac OS X上默认没有,但是你可以认为它和pkill
一样。但是,当我运行此脚本时,我得到以下输出:
hello
foo: line 4: 54851 Killed sleep 100
bye
如何取消中间的行,以便我只看到 hello
和 bye
?
最佳答案
虽然 disown
可能会产生使消息静音的副作用;这就是您以一种消息真正静音的方式启动流程,而不必放弃流程的作业控制。
{ command & } 2>/dev/null
如果您仍然想要命令自己的 stderr(只是在 stderr 上屏蔽 shell 的消息),您需要将进程的 stderr 发送到真正的 stderr:
{ command 2>&3 & } 3>&2 2>/dev/null
要了解重定向的工作原理:
顺便说一下; don't use kill -9
.
我也觉得有义务评论您的:
ps ax | grep sleep | grep -v grep | awk '{ print $1 } ' | xargs kill -9
这会让任何 UNIX/Linux 用户眼前一亮。而且,每次解析ps
,都会死一个仙女。这样做:
kill $!
即使像 pgrep
这样的工具在设计上也基本上是错误的。虽然他们在匹配流程方面做得更好,但根本的缺陷仍然存在:
关于linux - 抑制 fork 命令被杀死的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/714855/
我试图理解什么是 -XX:OnOutOfMemoryError='kill %p' 下面的命令是什么意思? 我不确定 %p 是什么意思? exec /bin/bash -c "LD_LIBRARY_P
我试图理解什么是 -XX:OnOutOfMemoryError='kill %p' 下面的命令是什么意思? 我不确定 %p 是什么意思? exec /bin/bash -c "LD_LIBRARY_P
这个问题在这里已经有了答案: Solving "adb server version doesn't match this client" error [duplicate] (17 个答案) 关闭
我是一名优秀的程序员,十分优秀!