lils76 发表于 2020-9-9 10:31:28

shell输出

. test.sh
source test.sh
./test.sh
sh test.sh
是否一样

风也温柔s 发表于 2020-9-9 20:50:30

./test.sh 指定使用的是文件第一行的解释器,如果没有,使用系统默认解释器
bash test.sh   指定bash解释器去解释,如果系统没有bash,使用系统默认解释器
. test.sh    使用系统默认解释器

lils76 发表于 2020-9-10 09:43:35

风也温柔s 发表于 2020-9-9 20:50
./test.sh 指定使用的是文件第一行的解释器,如果没有,使用系统默认解释器
bash test.sh   指定bash解释 ...

谢谢

海月清辉 发表于 2020-9-19 15:36:52

风也温柔s 发表于 2020-9-9 20:50
./test.sh 指定使用的是文件第一行的解释器,如果没有,使用系统默认解释器
bash test.sh   指定bash解释 ...


    . test.sh这里会在父进程上执行操作
bash test.sh   这里是派生一个子进程执行操作    最大的区别是变量
source 模式下变量将会在接下来的操作被继承   
bash模式下   因为是新派生的子进程只能在新生成的子进程上 变量有效一旦退成环境此变量将会找不到
页: [1]
查看完整版本: shell输出