我想要孩子和父母的pid。所以我这样做:
function x { echo $1 $$; }
现在,当我执行以下操作时,我希望函数x具有父子pids:
x $$ &
但是,x只有父pid。如何让函数作为单独的进程运行?
答案 0 :(得分:2)
我相信您正在寻找$BASHPID
:
#! /bin/bash
function x { echo $$ $BASHPID;}
x & child=$!; wait ; echo $child
输出:
bash test.sh
1191 1195
1195
答案 1 :(得分:0)
看起来与$$
的范围有关,它在启动脚本时已经被全局评估。该功能肯定在一个单独的过程中运行。您可以使用$!
function x {
echo $1 $$;
}
x $$ &
echo "forked process: $!"