sh 文件介绍. sh 为 Linux 的脚本文件, 我们可以通过. sh 执行一些命令, 可以理解为 windows 的. bat 批处理文件.
点命令. 命令和 source 是同一个命令, 可以理解为 source 的缩写, 简称点命令.
sh,source 和. 命令执行. sh 文件的区别假如有一个文件 test.sh, 脚本内容如下
!/bin/bash
echo "step 1 sleeping"sleep 200echo "step 2 sleeping"sleep 200 那么, 现在按以下 4 种方式执行:
- )./test.sh
- )sh test.sh
- ). test.sh
- )source test.sh
他们有何区别?
1)第一种方式, 是在当前的 shell 执行脚本本身, 也就是说把 test.sh 当成一个文件执行, 这时候我们需要拥有 test.sh 的运行权限(x 权限), 而且当我们在执行此命令时, 有 2 个新进程在运行, 一个是 test.sh, 一个是 sleep, 如果我们在执行第一个 sleep 时按 ctrl+c 终止脚本, test.sh 和 sleep 一起终止, 并且第二个 sleep 不会执行, 因为整个 test.sh 运行已经终止.
2)第二种方式, 是新建一个 shell 执行 test.sh 脚本里面的命令, 不需要执行权限, 有读取权限 (r 权限) 即可, 在执行此命令时, 有 2 个新进程在运行, 一个是 bash, 一个是 sleep, 如果执行第一个 sleep 时按 ctrl+c,bash 被终止, 结果和第一种方式一样, 第二个 sleep 不会执行.
3)第三种方式, 是在当前 shell 执行 test.sh 里面的命令, 不需要执行权限, 有读取权限 (r 权限) 即可, 在执行此命令时, 只有一个新进程在运行, 就是 sleep, 如果在执行第一个 sleep 时按 ctrl+c 终止, 那么第二个 sleep 接着运行, 直到脚本所有命令执行完.
4)第四种方式和第三种方式一致.
来源: http://www.92to.com/bangong/2018/08-25/34043471.html