获取多个进程的进程id在bash中返回相同的进程id

获取多个进程的进程id在bash中返回相同的进程id,bash,Bash,我正在尝试获取几个bash进程的进程ID: ./test_run.sh hello echo $$ ./test_run.sh hellos echo $$ ./test_run.sh hello22 echo $$ /test_run.sh你好 回音$$ /测试运行。您好 回音$$ /测试运行。您好22 回音$$ test_run.sh的定义 echo "run $1" echo“运行$1” 但是它们都返回相同的进程ID,为什么?$$返回当前shell进程的PID。要获取刚刚启动的后台进程的P

我正在尝试获取几个bash进程的进程ID:

./test_run.sh hello echo $$ ./test_run.sh hellos echo $$ ./test_run.sh hello22 echo $$ /test_run.sh你好 回音$$ /测试运行。您好 回音$$ /测试运行。您好22 回音$$ test_run.sh的定义

echo "run $1" echo“运行$1”
但是它们都返回相同的进程ID,为什么?

$$
返回当前shell进程的PID。要获取刚刚启动的后台进程的PID,请使用
$

./test_run.sh hello &
echo $!
./test_run.sh hello &
echo $!

您所做的只是将参数更改为
test\u run.sh
。这与问题有什么区别?$$返回相同的pid和$!在更新的问题中返回“”。我希望$$返回不同的pidsOh,我看到你不再把它们放在后台了
$仅适用于后台进程。为什么希望
$
返回不同的PID?运行命令时,原始shell的PID不会更改。该命令在子进程中运行,但原始shell进程保持不变。