|
发表于 2009-2-28 21:16:23
|
显示全部楼层
Post by realasking;1954205
不过楼上能否举几个创建子shell但没有复制父shell的环境的例子? 上面不是已经举过了么?
知道$$这个shell参数么?扩展为当前shell的进程号。它是shell环境的一部分,但是不会被子进程继承(怎么可能继承?子进程也是进程,也有自己的进程号!)不过如果子shell中该值没有改变,只有一种解释:子shell复制了父shell的环境。- $ echo $$
- 2500
- $ (echo $$)
- 2500
- $ echo $(echo $$)
- 2500
- $
复制代码 为什么都是2500?
接着再来:- $ bash -c 'echo $$'
- 2530
- $ bash
- $ echo $$
- 2531
- $ exit
- $ echo 'echo $$' | bash
- 2541
- $ cat > script.sh
- echo $$
- $ bash script.sh
- 2545
- $
复制代码 为什么又不一样了? |
|