我可能在这里很愚蠢,但是如果我想在进程运行时做某事,为什么要这样做:
while kill -0 $PID
do
#...
done
Run Code Online (Sandbox Code Playgroud)
代替
until kill -0 $PID
do
#...
done
Run Code Online (Sandbox Code Playgroud)
?
kill -0
1
如果未找到该进程,则以代码退出,并且0
如果找到该进程:
$ kill -0 123444
-bash: kill: (123444) - No such process
$ echo $?
1
$ screen -ls | grep rofl
28043.rofl (02/19/2015 02:27:56 PM) (Detached)
$ kill -0 28043
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)
因此,如果进程正在运行,while 循环不会归结为:
while 0
do
#...
done
Run Code Online (Sandbox Code Playgroud)
哪个永远不会执行?
我可以使用cat
反引号将文件内容粘贴到命令中:
ls `cat filenames`
Run Code Online (Sandbox Code Playgroud)
有没有办法做相反的事情 - 将字符串转换为(临时)文件名?
gcc -o cpuburn `uncat "main(){while(1);}"`.c
Run Code Online (Sandbox Code Playgroud) bash ×1
command-line ×1
exit ×1
files ×1
linux ×1
scripting ×1
shell ×1
shell-script ×1
tmp ×1