文章目录
一、使用 shell 命令解释器执行脚本
- 一、使用 shell 命令解释器执行脚本
- 二、使用命令 source 执行脚本文件
- 三、使用路径方式执行脚本文件
-
- 为什么不能在当前目录直接执行当前目录下的脚本文件呢?
- 四、使用命令 exec 执行脚本文件
- 五、它们有什么区别
- 六、验证是否开启子进程
-
- (一)通过父 shell 中的变量是否正常获取来判断
- (二)直接查看进程的 PID 来验证
- 七、总结
shell 命令解释器有:bash、sh、zch 等。通过这种方式运行脚本,不需要在脚本文件的第一行指定解释器信息(就是说这个 #!/bin/sh
可以不要写了),写了也没用。这种方式实则是将脚本文件作为参数传递给解释器执行(意思是说执行文件中的指令不是文件自己来执行,是调用者来执行,调用者是 bash 或 sh 或 zch 等)。所以可以不理会脚本文件的权限,在执行时也无需指定脚本文件的相对路径或者绝对路径。
查看系统支持的 shell:
[root@htlwk0001host ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
查看当前终端使用的 shell:
[root@htlwk0001host ~]# echo $SHELL
/bin/bash
那么可以使用 bash 或者 sh 执行 shell 脚本文件:
[root@htlwk0001host ~]# sh test.sh
hello!
其实 sh 是链接到 bash 的符号链接:
[root@htlwk0001host ~]# ll /bin/sh
lrwxrwxrwx. 1 root root 4 11月 9 2019 /bin/sh -> bash
二、使用命令 source 执行脚本文件
使用