我正在寻找一个 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)