为什么clear命令不能与nohup sleep一起使用?

为什么clear命令不能与nohup sleep一起使用?

这里有 2 个代码示例。两者都是nohupbash 字符串中的代码。第一个完成了这项工作,第二个则没有。我问为什么。

sudo apt-get purge zip unzip
nohup bash -c " sleep 20s; apt-get install zip unzip; " & 

上面的命令在后台执行并安装为这些软件(我已经通过执行stdin“ zip”来确认它。


nohup bash -c " sleep 20s; clear; "

该命令在前台运行,但不会清除 tty。这是为什么?我该怎么做才能清除当前会话的屏幕?是否有任何参数/执行方式/脚本可以与命令一起运行,这可能会有所帮助?

答案1

clear程序正在写入标准输出,即重定向通过nohup命令。所以这对终端没有影响。

您可以在 中看到输出(来自clearnohup.out

你可以这样做:

nohup bash -c " sleep 20s; clear >/dev/tty; "

它告诉 shell 将输出重定向cleartty设备。您可以使用该tty命令来识别终端设备您正在使用的,例如

    nohup bash -c " sleep 20s; clear > $(tty); "

但在大多数情况下两者都会起作用。

您可能会收到来自 的警告nohup,可以将其静音:

    nohup bash -c " sleep 20s; clear > $(tty); " 2>/dev/null

相关内容