Linux 的交互式 Shell 与 Shell 脚本存在必定的差别,主要是因为后者存在一个独立的运行进程,所以在获取进程 pid 上两者也有所区别。html
#在已知进程名(name)的前提下,交互式 Shell 获取进程 pid 有不少种方法,典型的经过 grep 获取 pid 的方法为(这里添加 -v grep是为了不匹配到 grep 进程): ps -ef | grep "name" | grep -v grep | awk '{print $2}' #或者不使用 grep(这里名称首字母加[]的目的是为了不匹配到 awk 自身的进程): ps -ef | awk '/[n]ame/{print $2}' #若是只使用 x 参数的话则 pid 应该位于第一位: ps x | awk '/[n]ame/{print $1}' #最简单的方法是使用 pgrep: pgrep -f name #若是须要查找到 pid 以后 kill 掉该进程,还能够使用 pkill: pkill -f name #若是是可执行程序的话,能够直接使用 pidof pidof name
学习shell 地址shell
https://www.yiibai.com/shell/unix-special-variables.htmlbash
http://wiki.jikexueyuan.com/project/shell-learning/gorgeous-printf-output.htmlyii