这里有 2 个代码示例。两者都是nohup
bash 字符串中的代码。第一个完成了这项工作,第二个则没有。我问为什么。
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
命令。所以这对终端没有影响。
您可以在 中看到输出(来自clear
)nohup.out
。
你可以这样做:
nohup bash -c " sleep 20s; clear >/dev/tty; "
它告诉 shell 将输出重定向clear
到tty
设备。您可以使用该tty
命令来识别终端设备您正在使用的,例如
nohup bash -c " sleep 20s; clear > $(tty); "
但在大多数情况下两者都会起作用。
您可能会收到来自 的警告nohup
,可以将其静音:
nohup bash -c " sleep 20s; clear > $(tty); " 2>/dev/null