shell脚本组合各种Linux命令,正则表达式,管道命令,数据流重定向等语法规则来完成指定任务。
cat /etc/shells 此命令查看系统中可用的shell解释器
简单的脚本格式:
脚本声明(#!):告诉系统用何种shell来解释
注释信息(#): 对此脚本的介绍等,可不写
执行语句: 执行的具体命令
执行脚本方式:
./script_name.sh(可能需增加执行权限)
sh script_name.sh
source script_name.sh
接收参数的脚本:
比如:./script_name.sh var1 var2 var3
那么: $0 $1 $2 $3
此外,$#(一共有多少参数),$*(所有位置变量的值),$?(判断上一条命令是否执行成功)
测试语句格式:[ 条件表达式 ] 表达式两边有空格
测试语句有:文件测试,逻辑测试,整数值比较,字符串比较
文件测试:[操作符 文件或目录名]
-d 测试是否为目录
-e 测试文件或目录是否存在
-f 判断是否为文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
逻辑测试:[表达式1] 操作符 [表达式2]
&& 与
|| 或
! 非
整数值比较:[整数1 操作符 整数2]
-eq 判断是否等于
-ne 判断是否不等于
-gt 判断是否大于
-lt 判断是否小于
-le 判断是否等于小于
-ge 判断是否大于或等于
字符串比较:[字符串1 操作符 字符串2]
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 比较字符串内容是否为空
条件测试语句:
if 条件测试操作
then 命令序列
elif 条件测试操作
then 命令序列
else 命令序列
fi
######################
for 变量名 in 取值列表
do
命令序列
done
######################
while 条件测试操作
do
命令序列
done
######################
case 变量名 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
.........
*)
默认命令序列
esac
阅读(491) | 评论(0) | 转发(0) |