有时候我需要遵循一个过程而且总是找到一个执行pid=$1
的bash脚本。据我所知,它应该获取我发送到我创建的第一个shell实例的进程ID,该实例正在运行该特定进程,我以后可以使用它(例如,杀死它,或者跟随内存使用,或者其他)。 pid=$0
应获取当前实例(bash)和pid=$!
最新实例。 (如果我错了,请纠正)
问题是:每当我需要运行pid=$1
命令时,pid
什么也得不到,echo $pid
或echo ${pid}
打印并清空,我总是需要一种方式使用pid=$!
代替它,因为它是唯一获取我的进程ID的东西。有谁知道为什么我的终端表现如此? (它发生在Linux Mint或Fedora中)
答案 0 :(得分:4)
$$
应该为您提供脚本pid
$PPID
应该给你调用者(父)pid
评论的回答
sleep 100 &
sleeppid=$!
echo "PID=$sleeppid"