是否有一個 Linux 命令不執行任何操作,但從不退出?

是否有一個 Linux 命令不執行任何操作,但從不退出?

我正在尋找一個 Linux 命令,它實際上不執行任何操作,不輸出任何內容,但一直保持活動狀態直到^C.

while true; do; done這不是一個好的解決方案,因為它是 CPU 密集型的。

答案1

如果我們看一下系統調用,實際上有一個可以做到這一點,pause(2)

pause()導致呼叫程序(或執行緒)休眠,直到傳遞訊號...

當然,那麼我們只需要一個使用它的程式。除了編譯下面的兩行 C 程式之外,最簡單的方法可能是使用 Perl:

perl -MPOSIX -e pause

在C中:

#include <unistd.h>
int main(void) { return pause(); }

答案2

GNUsleepsleep的內建函數ksh93(但不是mksh)接受任何浮點數,而不僅僅是整數,所以你可以這樣做:

sleep infinity

答案3

只需添加一個sleep命令即可。

while true; do sleep 600; done

將在循環之間休眠 10 分鐘。

答案4

你可以:

tail -f /an/existing/regular/file >/dev/null

這不會使用標準輸入(本來read),並且會等待 /an/existing/regular/file 的新添加(對某些文件不起作用:tail -f /dev/null將立即退出。但適用於所有常規文件。如果該文件是不增長,該指令會消耗很少的CPU)

相關內容