共计 1454 个字符,预计需要花费 4 分钟才能阅读完成。
Shell 脚本
编写 Python、PHP 脚本通常需要掌握语言的函数,那么 Shell 脚本则不需要,只需要掌握 Linux 命令就可以编写 Shell 脚本,因为 Shell 脚本就是由多个 Linux 命令组成,通过将多个 Linux 命令组合保存成一个脚本文件,可直接给其他人使用。
组合命令
进入一个目录,查看目录的文件,这个过程分别需要执行两条命令,分别是cd
和ls
。
分开执行两个命令的形式如下:
[root@lincoding usr]# cd /usr/
[root@lincoding usr]#
[root@lincoding usr]# ls
bin etc games include lib lib64 libexec local sbin share src tmp
[root@lincoding usr]#
我们可以用分号;
,来将两个命令组合在起来,顺序执行,那么一起执行的形式如下:
[root@lincoding usr]# cd /usr/ ; ls
bin etc games include lib lib64 libexec local sbin share src tmp
[root@lincoding usr]#
编写 Shell 脚本流程
那么如果这两个命令经常使用或者提供给其他人使用,我们可以把这两个命令用 Shell 脚本文件保存起来。
01 建立 Shell 脚本文件
使用 bash 的 Shell 通常以 .sh
后缀
[root@lincoding home]# touch test.sh
02 编写 Shell 脚本
通过 vi
命令编写 test.sh
脚本,内容如下:
cd /usr/
ls
需要注意的是 Shell 脚本里每条语句后面不用加分号;
,每条命令采用换行的方式,执行 Shell 脚本的时候就会顺序执行。
03 给予 Shell 脚本执行权限
因为建立文件的时候,默认是没有执行权限的,我们需要给予脚本执行权限,脚本才可以运行
[root@lincoding home]# chmod u+x test.sh
查看脚本权限
[root@lincoding home]# ls -l test.sh
-rwxr--r--. 1 root root 13 Sep 12 09:10 test.sh
04 执行 Shell 脚本
用 bash 执行 Shell 脚本,执行的结果就和我们在外边单行组合命令执行的结果是一样的
[root@lincoding home]# bash test.sh
bin etc games include lib lib64 libexec local sbin share src tmp
声明 Shell 解释器
那么这里还要考虑一下其他的问题,假设要把这个 Shell 脚本在与不同的系统下运行的时候就会有问题,如果系统默认的 Shell 不是 bash,执行这个 Shell 脚本可能会失败,因为可能会有 bash 的一些 Shell 特性在里边。
那么我们可以在 Shell 脚本文件的 第一行声明 它使用的是哪个 Shell,书写的格式如下:
#!/bin/bash
这样写的好处是,执行 Shell 脚本的时候,会自动告诉系统用 bash
解释器的 Shell 来执行脚本。
我们将刚才的 test.sh 脚本修改后如下:
#!/bin/bash
cd /usr/
ls
那么声明使用哪个 Shell 解释器后,我们执行脚本的方式就可以变的很简单了
[root@lincoding home]# ./test.sh
bin etc games include lib lib64 libexec local sbin share src tmp
小结
我们编写 Shell 脚本时,第一行要以 #!/bin/bash
声明 Shell 解释器,编写完后要给予 Shell 执行权限,接着就可以执行运行了。