2024年3月13日发(作者:)
shell脚本的执行方式:
#bash 直接使用指定的bash解释脚本
#. 调用默认shell解释执行
#chmod +x ; ./ 增加可执行权限执行
1、bash 执行脚本的话不管shell脚本里边是否指定 #!/bin/sh都不会在用
指定的sh命令解释器,而是用指定的bash执行脚本,然后启动子shell去执行
测试方法 :echo -e “nihao” ,sh会打印-e这个参数 bash不会打印-e这个
参数
在脚本中写入下面的话
#!/bin/sh
echo -e "nihao"
分别用bash 和./去执行,看现象。
2、chmod +x ; ./ 增加可执行权限执行,这种方式执行的话也是
启动子shell去执行与第一种方式相同,只是第一种方式指定了用哪一种shell命令解释器
去执行脚本,现在这种方式会使用脚本中指定命令解释器去执行脚本,如果脚本中未指定
的话,那么使用默认shell去执行。默认shell查看 echo $SHELL 查看系统的默认shell
命令解释器。
3、. 这个执行时在当前的shell中调用当前系统默认的shell命令解析器执行
的,不会启动子shell 直接在当前的shell中执行,并且调用系统默认的shell去执行脚本,
不管脚本中是不是指定shell命令解析器。
测试方法 :echo -e “nihao” ,sh会打印-e这个参数 bash不会打印-e这个
参数
在脚本中写入下面的话
#!/bin/sh
echo -e "nihao"
分别用 . 和./去执行。
Shell脚本中用#表示注释,相当于C语言的//注释。但如果#位于第一行开头,并且
是#!(称为Shebang)则例外,它表示该脚本使用后面指定的解释器/bin/sh解释执行。
如果把这个脚本文件加上可执行权限然后执行:
$ chmod +x
$ ./
Shell会fork一个子进程并调用exec执行./这个程序,exec系统调用应该


发布评论