我是shell新手,我刚刚了解到使用(命令)会创建一个新的子shell并执行命令,所以我尝试打印父shell和子shell的pid:
#!/bin/bash
echo $$
echo "`echo $$`"
sleep 4
var=$(echo $$;sleep 4)
echo $var
但答案是:
$./test.sh
9098
9098
9098
我的问题是:
- 为什么只有三个回声打印?我的代码中有 4 个回声。
- 为什么三个pid是一样的?subshell 的pid 显然和他父亲的不一样。
非常感谢您的回答:)