shell脚本的执行方法通常有三种
假设现在有一个脚本是 aa.sh
-
bash aa.sh 或者 sh aa.sh
这是当脚本文件本身没有可执行权限(即文件权限属性x位为-号)时常使用的方法,或者脚本文件开头没有指定解释器时需要使用的方法。推荐使用这种方法。 -
./aa.sh
指在当前路径下执行脚本(脚本需要有执行权限),需要将脚本文件的权限改为可执行(即文件权限属性为x位)。
具体方法为:
执行:chmod a+x aa.sh 或者chmod 755 aa.sh 来修改权限。
然后通过执行脚本绝对路径或者相对路径就可以执行脚本了。
注意:在生产环境中,运维人员由于忘记为该脚本设置可执行权限,然后直接使用,导致出错。因此,推荐第一种 bash aa.sh。 -
source aa.sh 或者 . aa.sh
source或者“.”命令的功能是:读入脚本并执行脚本,即在当前Shell中执行source或“.”加载并执行的相关脚本文件的命令及语句,而不是产生一个子Shell来执行文件中的命令。
注意:
一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为:
#!/bin/bash
或
#!/bin/sh
(1)在Shell中如果第一行的第一个字母是#,则不表示注释
#!这一组符号如果出现在脚本的第一行,代表的是指定该shell脚本用哪种类型的shell来解释和执行,即指定解释器。
如果#!这个符号出现的位置不是第一行,那么代表这一行是注释行,脚本不执行。
(2)sh为bash的软链接,大多数情况下,脚本的开头使用“#!/bin/bash”和“#!/bin/sh”是没有区别的,但更规范的写法是在脚本的开头使用“#!/bin/bash”。