Shell 脚本的介绍

Shell脚本通过Shell终端解释器当作人与计算机硬件之间的翻译官,用户可以通过它执行各种命令,不仅有简单的,还有复杂的,比如:判断、循环、分支等这些高级编程中才有的特性。Shell 命令有两种工作方式:

交互式:用户每输入一条命令就立即执行。
批处理:由用户事先编写好一个完整的脚本,然后再一次性执行完Shell脚本中的命令。

交互式,比如:

# 输入系统的PATH变量到屏幕上
    echo $PATH

批处理,就是把之前学习的Linux命令以及正则表达式,管道符,数据流重定向等语法规则结合到一起,再通过内部的逻辑语句进行处理,最终形成一个 Shell 脚本。
我们可以编写一个简单的脚本:
test.sh

#!/bin/bash
    # 这个一行注释
    pwd
    ls -l

python shell 交互式 shell脚本交互式_bash

Shell 脚本的后缀名可以为任何类型,但是为避免用户误以为是普通文件,所以普遍将用 .sh 作用后缀名
上面这个脚本:
第一个行是声明脚本以 bin/bash 解析器解析。
第二行是注释,对脚本的功能介绍。
第三行,第四行, 是两个简单的命令,就是我们平时执行的命令。

使用脚本接收用户的参数

如果我们的脚本像上面简单的编写的话,那也太过死板了,不够灵活,不能处理多种情况,如果一个程序不能和用户交互的话,就是一个好的程序,所以必须要让程序接收用户的参数。
接收参数命令及作用

参数

作用

$0

脚本的名称

$#

参数的个数

$*

对应所有的参数

$?

上一次命令的返回

$n

分别对应第n个位置的参数

exec.sh

#!/bin/bash
    echo "脚本的名称为:$0"
    echo "脚本一共有:$# 个参数,分别是:$*"
    echo "第二个参数是:$2,第五个参数是:$5"

python shell 交互式 shell脚本交互式_字符串_02

各个参数之间用空隔间隔

判断文件的参数

文件判断的参数

命令

作用

-d

判断文件是否为目录

-e

判断文件是否为空

-f

判断文件是否为一般文件

-r

判断文件是否可读

-w

判断文件是否可写

-x

判断文件是否可以执行

python shell 交互式 shell脚本交互式_字符串_03

中括号的前后最后留一个空格的距离

Shell 脚本中的判断不仅仅可以判断文件,还可以比较数值:
可用于整数比较的运算符

命令

作用

-eq

是否等于

-ne

是否不等于

-gt

是否大于

-lt

是否小于

-le

是否小于等于

-ge

是否大于等于

python shell 交互式 shell脚本交互式_Shell_04

还可以用来比较字符串是否相等:

命令

作用

=

比较字符串内容是否相等

!=

比较字符串内容是否不相等

-z

判断字符串内容是否为空

python shell 交互式 shell脚本交互式_bash_05