Shell脚本的三种执行方式和区别

Shell脚本的三种执行方式和区别

编写脚本test.sh

#!/bin/bash
date
echo $$  #显示当前shell的pid

执行结果:

由此总结出三种Shell脚本的三种执行方式和区别

  1. ./的方式执行

打开一个子shell进程,并执行脚本

  1. bash方式执行

    同上,打开一个子shell,并运行脚本

  2. source方式执行

    是在当前的shell下执行

  3. 补充:工作中还见过用“点命令”执行脚本:
    在脚本的开头加上[. ]:
    . /cirsapp/script/common/cirs_batch_hesd.sh
    注:cirs_batch_hesd.sh里都是定义的function,通过上面的方式导入函数到当前shell。

总结:当一个shell脚本执行的时候,会产生一个新的执行环境,如在终端中使用sh test.sh或./test.sh 会产生一个新的shell环境,在此环境中设置的变量值不会影响父shell中(即终端中)的值。使用source和点命令的目的可以理解为让脚本在父shell中执行,在脚本中设置变量值会影响父shell中的值。

posted @ 2021-08-17 22:58  向日葵的跋涉  阅读(504)  评论(0编辑  收藏  举报