Shell脚本文件无需编译,只需要由解释器解析即可。因此,修改权限后的脚本文件可直接执行。执行Shell脚本有以下3种方式。
- 作为可执行程序
执行脚本文件test.sh,如例所示。
./test.sh
linux@ubuntu:~/1000phone$ ./test.sh //执行脚本文件
hello world //脚本文件的输出结果
linux@ubuntu:~/1000phone$
如例,将脚本文件视为二进制的可执行程序,执行的方式为“./xxx.sh”。执行脚本时,Linux系统会根据全局环境变量PATH所指定的路径寻找该脚本而PATH在未修改的情况下,一定不会指定当前脚本文件所在的路径。因此,使用“./”表示通知系统,在当前目录下寻找。
- 指定环境变量
如果用户希望在系统的任何工作目录下都可以执行某一特定目录中的Shell脚本文件,只需将Shell脚本所在的目录添加到环境变量PATH中即可。
将例展示的脚本文件所在的路径添加到整个环境变量中,具体操作如例所示。
linux@ubuntu:~/1000phone$ ls
test.sh //脚本文件
linux@ubuntu:~/1000phone$ export PATH=/home/linux/1000phone:$PATH
//指定脚本文件所在路径
linux@ubuntu:~/1000phone$ cd //切换到主目录,也可切换到其他任意目录
linux@ubuntu:~$ test.sh //直接输入脚本文件名即可运行脚本,无需再指定路径
hello world //脚本的运行结果
linux@ubuntu:~$
上述示例中,脚本文件test.sh所在的路径为“/home/linux/1000phone”。因此,使用export命令临时在PATH变量中添加该路径。完成路径添加后,即可在任意目录下直接输入文件名执行脚本文件,无需再指定路径。
- 作为解释器参数
除了上述的执行方式外,用户还可以选择直接运行解释器,其参数为脚本文件名,如例所示。
linux@ubuntu:~/1000phone$ sh test.sh //直接运行解释器,将脚本文件作为参数
hello world
linux@ubuntu:~/1000phone$
按照例所示的方式执行脚本文件,其第一行无需指定解释器信息。如果需要使用的Shell为bash,则将例中的sh替换为bash即可。