
我正在尋找一個 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
GNUsleep
和sleep
的內建函數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)