shell 脚本的六种执行方式

创建一个Shell脚本,方便说明:

# touch /tmp/test.sh
# chmod 755 /tmp/test.sh
# ll /tmp/test.sh

方法一:./test.sh

.代表当前路径,/的意思就是在当前路径下执行test.sh。

如果不加./,bash就会去PATH环境变量里查找,若查找不到,会报错找不到命令。

# cd /tmp
# ./test.sh

方法二:/tmp/test.sh

以绝对路径的方式去执行Shell脚本。

# /tmp/test.sh

方法三:bash /tmp/test.sh

方法四:sh /tmp/test.sh

除了指定绝对路径,也可以切换到Shell脚本的路径,使用bash /tmp/test.sh或sh /tmp/test.sh执行脚本

# bash /tmp/test.sh
# sh /tmp/test.sh

bash和sh这两种方式的效果是一样的,都是将test.sh作为参数传给bash/sh命令来执行的,所以即使test.sh文件没有可执行权限,一样可以执行。

方法五:./tmp/test.sh

方法六:source /tmp/test.sh

前四种方法都是在当前Shell(成为父Shell)开启一个子Shell环境来执行脚本,最后这两种方法则是在当前Shell中执行的。

总结

方式说明
./test.sh 执行当前目录下的脚本
/tmp/test.sh 任意目录下皆可执行脚本
bash /tmp/test.sh 脚本无需可执行权限
sh /tmp/test.sh 同上
./tmp/test.sh 在当前Shell中执行脚本
source /tmp/test.sh 同上
posted @ 2021-02-11 16:01  ageovb  阅读(525)  评论(0)    收藏  举报