我知道为了抑制程序的输出,我可以将其重定向到/dev/null,例如隐藏来自 Chromium 的所有错误和警告消息,我可以像这样启动程序
chromium-browser 2> /dev/null &
Run Code Online (Sandbox Code Playgroud)
但是,如果我碰巧忘记了错误消息并键入
chromium-browser &
Run Code Online (Sandbox Code Playgroud)
(当它们出现在命令中间时这很烦人)我不知道该怎么做,除了停止应用程序并重新正确启动它。
我可以在不重新启动应用程序的情况下以某种方式重定向错误输出吗?
小智 22
这是回答here:here by vladr。答案是(引用):
我在以下脚本上尝试过:
[第一次评论后的版本:]
sleep 10 # 所以我可以有时间附加到进程 if [ "$sonorfather" == "father" ] # 避免无限递归 然后 儿子父亲=儿子 ./test & 菲 虽然是真的 做 回声“标准输出$sonorfather” echo "stderr $sonorfather" >&2 睡觉 1 完毕
我在创建子进程之前禁用了 stderr 输出,这是输出:
标准输出父亲 标准输出儿子 标准输出父亲 标准输出儿子 [等等...]。
我希望这能回答您的问题:子进程 stderr 也被重定向。
小智 8
您还可以使用 nohup 启动浏览器,然后使用以下命令关闭终端窗口:
nohup chromium-browser &
Run Code Online (Sandbox Code Playgroud)
这样,浏览器将启动并与控制台分离,然后可以安静地关闭。
小智 6
您还可以设置别名chromium-browser来代替运行chromium-browser 2> /dev/null
例如,如果您使用 bash,请编辑 /home/username/.bashrc 并添加行:
chromium-browser='chromium-browser 2> /dev/null'
Run Code Online (Sandbox Code Playgroud)
或者更好
chrome='chromium-browser 2> /dev/null'
Run Code Online (Sandbox Code Playgroud)
并保存一些击键。
| 归档时间: |
|
| 查看次数: |
5087 次 |
| 最近记录: |