一个简单的脚本构建

1.使用多个命令

通常情况下,我们可以通过在终端输入一些命令来执行某些操作。但有时候我们需要输入多个命令,并处理多个命令的结果,甚至需要将一个命令的结果传给另一个命令,因此我们需要用到shell脚本,将多个命令串联起来。在shell中如果想要两个命令一起运行,可以把它们放在同一行,同时彼此之间用分号隔开,如:

ubuntu zabbix 脚本 用户权限 ubuntu创建脚本_bash


这就是一个简单的脚本,运用了两个简单bash shell命令:date命令先运行,显示了当前如期和时间,后面紧跟着的who命令显示出当前是谁登陆到了系统上。这种方式使命令串联在了一起,但是缺点是每次执行时都到输入大量的命令,而且最大命令行字符数255往往不够用。因此我们需要将命令组合成一个简单的文本文件,这样就不需要每次都手动输入。

2.创建shell脚本文件

在此之前,首先需要用到文本编辑器来创建一个文件,在这里,我们用vim来做示范。可以使用```

sudo apt-get install vim

来安装vim。

在创建脚本文件前,我们要了解脚本文件是如何运行的:

  • 直接运行:直接在终端直接输入需要运行的脚本文件名称,系统或用缺省版本的shell运行脚本程序。
  • 命令提示符中指定某个特定shell版本如:$bash script_name ,创定一个特定版本的临时子shell(此例为bash)来运行脚本程序,script_name是脚本文件名,会逐行执行脚本命令并依次输出结果。当脚本文件中的命令依次执行完毕,该临时子shell也自动结束运行,返回到用户原来使用的shell状态。
  • 在脚本文件开头指定一个将要使用的shell:在脚本文件开头增添
#!/bin/bash

注意:#!必须顶格,后面接全路径,可以从/etc/shell中获得全部的可用shell及其绝对路径。
在这里我们运用第三种方式指定运行的shell。

在通常的shell脚本中,用井号(#)用作注释行,shell不会处理shell脚本中的注释行,但是第一行的#!/bin/bash是个例外。

在指定了shell后,就可以创建一个脚本,如:

#!/bin/bash
#This is a simple script.
date
who

ubuntu zabbix 脚本 用户权限 ubuntu创建脚本_创建shell脚本_02


这就是笔者创造的名叫aaa的脚本的所有内容了。3.运行脚本

如果在以上步骤后直接在终端输入文件名来运行,结果可能会让你失望:

ubuntu zabbix 脚本 用户权限 ubuntu创建脚本_环境变量_03


在这里的障碍是让bash shell能够找到你的脚本文件,shell会通过PATH环境变量来查找命令,我们可以快速查找一下PATH环境变量就可以弄清问题所在:

ubuntu zabbix 脚本 用户权限 ubuntu创建脚本_环境变量_04


可以看到,PATH环境变量被设置成只在一组目录中查找命令。要让shell找到aaa脚本,可以通过以下两种方式:



在此例中我们将使用第二种方法。为了引用当前目录下的文件,可以在shell中使用单点操作符:

ubuntu zabbix 脚本 用户权限 ubuntu创建脚本_bash_05


现在shell找到了需要执行的脚本文件,但是没有执行文件的权限。在此,我们可以查看一下脚本文件的权限:

ubuntu zabbix 脚本 用户权限 ubuntu创建脚本_shell脚本_06


我们发现文件属主用户只有读与写的权限,我们可以通过chmod命令来该便脚本文件的运行权限:

ubuntu zabbix 脚本 用户权限 ubuntu创建脚本_环境变量_07


之后我们发现我们拥有了文件的执行权限,下一步我们就可以执行我们的脚本文件了:

ubuntu zabbix 脚本 用户权限 ubuntu创建脚本_创建shell脚本_08

到此时,一个基本的shell脚本文件已经创建和执行成功了。