执行Shell
- 输入完整脚本文件路径即可执行。
提示:权限不够,则执行chmod u+x 文件名
。 - 执行
bash shell文件名称
。
简单的脚本
#!/bin/bash
# 上面的是指定解释器
echo $PATH
echo 路径输出完毕!
echo `date +%Y%M%d`
接受输入参数
- 执行shell文件时,在文件后使用空格隔开多个输入参数。
- shell文件中使用输入参数
参数 | 说明 |
---|---|
$n | 用户输入的第n个参数,从1开始 |
$# | 用户输入的擦书总数 |
$* | 用户输入的所有参数值,使用空格隔开 |
条件测试语法
- Shell 脚本中的条件测试语法可以判断表达式是否成立,
若条件成立则返回数字 0,否则便返回其他随机数值。
语法格式:
[ 条件表达式 ]
- 条件表达式两侧需要各有一个空格。
- 使用
$?
返回条件表达式结果。 - 条件表达式可以是变量也可以是具体的值。
&&
表示当前面的命令执行成功后才会执行它后面的命令。||
表示当前面的命令执行失败后才会执行它后面的命令。!
示把条件测试中的判断结果取相反值。
测试运算符
运算符 | 说明 |
---|---|
-d | 测试文件是否为目录类型 |
-e | 测试文件是否存在 |
-f | 判断是否为一般文件 |
-r | 测试当前用户是否有权限读取 |
-w | 测试当前用户是否有权限写入 |
-x | 测试当前用户是否有权限执行 |
-eq | 两个数字是否等于 |
-ne | 两个数字是否不等于 |
-gt | 数字A是否大于数字B |
-lt | 数字A是否小于数字B |
-le | 数字A是否等于或小于数字B |
-ge | 数字A是否大于或等于数字B |
= | 比较字符串内容是否相同 |
!= | 比较字符串内容是否不同 |
-z | 判断字符串内容是否为空 |
实例:
[ 1 -eq 2 ] || echo '这个说法是对的'
流程控制语句
if语句
语法:
if 条件测试语句 then
命令...
fi
if-else语句
语法:
if 条件测试语句 then
命令...
else
命令...
fi
case语句
语法:
case 变量值 in
值1)
命令..
;;
值2)
命令..
;;
...
*)
默认的命令..
;;
esac
*
代表不在所列出范围内的值。- 匹配值可以有多个。
条件循环语句
for循环
语法:
for 变量名 in 取值列表
do
命令...
done
- 取值列表可以是命令查出来的值。
- 循环体内可以使用
$变量名
的形式获取当前变量的值。
while循环
语法:
while 条件测试语句
do
命令...
done