当前位置: 技术问答>linux和unix
Shell中$!到底是什么意思?请给举个例子看看
来源: 互联网 发布时间:2016-06-06
本文导语: 我也知道$!是显示最后一个后台进程的进程号,但是对这个概念很模糊,不具体,因此如果哪位朋友用到过它,请给具体解释一下,最好能给出个实际的小例子,多谢多谢。 | $!:最近后台运...
我也知道$!是显示最后一个后台进程的进程号,但是对这个概念很模糊,不具体,因此如果哪位朋友用到过它,请给具体解释一下,最好能给出个实际的小例子,多谢多谢。
|
$!:最近后台运行的命令的进程id号(pid),如:
[root@bache tmp]# ll&
total 52
[1] 2128
[root@bache tmp]# -rwxrwxr-x 1 root root 5542 2009-05-16 07:15 forkpipe
-rw-r--r-- 1 root root 607 2009-05-16 07:15 forkpipe.c
-rwxrwxr-x 1 root root 12620 2009-05-14 10:51 log
-rw-r--r-- 1 root root 10977 2009-05-14 10:51 log.c
-rwxrwxr-x 1 root root 5645 2009-05-11 10:01 test
-rw-r--r-- 1 root root 365 2009-05-11 10:01 test.c
[1]+ Done ls --color=auto -l --color=auto
[root@bache tmp]# echo $!
2128
[root@bache tmp]#
|
[root@RHEL4_U5 software]# cat test4.sh
#!/bin/bash
echo "ouput the PID"
echo "$$"
[root@RHEL4_U5 software]# sh test4.sh &
[1] 5181
[root@RHEL4_U5 software]# ouput the PID
5181
[1]+ Done sh test4.sh
[root@RHEL4_U5 software]# echo $!
5181
#!/bin/bash
echo "ouput the PID"
echo "$$"
[root@RHEL4_U5 software]# sh test4.sh &
[1] 5181
[root@RHEL4_U5 software]# ouput the PID
5181
[1]+ Done sh test4.sh
[root@RHEL4_U5 software]# echo $!
5181
|
[root@RHEL4_U5 software]# cat test4.sh
#!/bin/bash
echo "ouput the PID"
echo "$$"
[root@RHEL4_U5 software]# sh test4.sh &
[1] 5245
[root@RHEL4_U5 software]# ouput the PID
5245
[1]+ Done sh test4.sh
[root@RHEL4_U5 software]# echo $!
5245
[root@RHEL4_U5 software]#
就是后台运行的最后一个PID
#!/bin/bash
echo "ouput the PID"
echo "$$"
[root@RHEL4_U5 software]# sh test4.sh &
[1] 5245
[root@RHEL4_U5 software]# ouput the PID
5245
[1]+ Done sh test4.sh
[root@RHEL4_U5 software]# echo $!
5245
[root@RHEL4_U5 software]#
就是后台运行的最后一个PID
|
[root@RHEL4_U5 ~]# updatedb &
[1] 5433
[root@RHEL4_U5 ~]# echo $!
5433
[root@RHEL4_U5 ~]# kill -9 5433
[1] 5433
[root@RHEL4_U5 ~]# echo $!
5433
[root@RHEL4_U5 ~]# kill -9 5433
|
监控后台运行程序,发现有不正常的时候KILL掉