shell-guide

第一个Shell脚本

编写

打开Terminal,使用vim新建一个hello.sh文件,输入以下代码

#!/bin/bash
echo "Hello Shell !"

“#!” 是一个约定的标记,它告诉系统这个脚本需要哪种Shell解释器来执行,以下是几种常用的脚本解释器。

#!/bin/sh          —使用sh,即Bourne shell或其它兼容shell执行脚本
#!/bin/csh         —使用csh,即C shell执行
#!/usr/bin/perl    -w—使用带警告的Perl执行
#!/usr/bin/python  -O—使用具有代码优化的Python执行
#!/usr/bin/php     —使用PHP的命令行解释器执行

运行

运行Shell脚本有两种方法:

  • 作为可执行程序

chmod +x hello.sh
./hello.sh

注意:一定要写成./hello.sh,而不是hello.sh,运行其它二进制的程序也一样,直接写hello.sh,系统会去PATH里寻找有没有叫hello.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用./hello.sh告诉系统说,就在当前目录找。

通过这种方式运行bash脚本,第一行(#!/bin/bash)一定要写对,好让系统查找到正确的解释器。

  • 作为解释器参数

    这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:
    /bin/sh test.sh
    /bin/php test.php
    
    这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。 我比较经常的使用第一种方式运行,所以我会在所有脚本的第一行都写上‘#!/bin/bash’,我也建议大家这样做。