如果不使用内建命令而是fork出一个子进程并且在子进程中执行的话,不会改变父环境的路径。
因为执行结束了又回到了父shell环境,环境的pwd根本没有被改变,所以就会失败。
可以自己写一个脚本测试下:cd.sh
#!/bin/bashcd /home/
然后执行./cd.sh 你会发现当前shell的路径根本没有变化。
同样的道理,想改变当前shell的很多参数和环境变量表内容都要使用内建命令。
如果不使用内建命令而是fork出一个子进程并且在子进程中执行的话,不会改变父环境的路径。
因为执行结束了又回到了父shell环境,环境的pwd根本没有被改变,所以就会失败。
可以自己写一个脚本测试下:cd.sh
#!/bin/bash同样的道理,想改变当前shell的很多参数和环境变量表内容都要使用内建命令。