第十三章shell scripts
- 什么是 Shell Script
1.1 干嘛学习 shell script
1.2 第一支script的撰写与执行
1.3 规范(说明,历史,特殊指令的绝对路径,变量先声明与设定,exit返回值) - 简单的shell script练习
2.1 简单范例(常用的模板)
对谈式,等用户输入
随日期变化,利用date,${date --date='1 days ago' +%Y%m%d}
数值运算,只支持整型,var=$((运算内容))
2.2 script执行方式差异(source,sh,script,./script)
用source是在本主程序用运行,其他事开启一个子程序运行 - 善用判断式
3.1 用test指令测试功能
1 判断某个文件或目录存在与否,还有文件类型 test -e /ckt && echo "exit" || echo "Not exist"
2 判断是否具有权限,test -r filename
3 两个档案之间的比较 test file1 -nt file2
4 两个整数之间的判断 test n1 -eq n2
5 判断单个字符串是否为空,或者两个字符串是否相等
6 多重条件判定,与或非: -a -o !
3.2 利用判断符号[],注意要很多空格:[ "$HOME" == "$SMAIL" ]
3.3 shell script的默认变数($0,$1)
$0: 文档名
$1: 第一个参数
$#: 参数个数
$@: ="$1" "$2" "$3" "$..." "$n"
$*: ="$1 $1 $3 $... $n"
shift: 造成参数变量号码偏移 - 条件判断式
4.1 if [条件判断式];then
elif [条件判断式];then
else
fi
4.2 case $变量名称 in
"第一个变量内容")
程序段
;;
"第N个变量内容")
程序段
;;
程序段
exit 1
;;
esac
4.3 利用function功能
function fname(){
程序段
}
同样有$0,$1,$2... - 循环loop
5.1 while do done,until do done
while [condition]
do
程序段
done
util [condition]
do
程序段
done
5.2 for var in con1 con2 con3
do
程序段
done
for初始值;限制值;执行步阶)
do
程序段
done - debug
sh [-nvx] scripts.sh
-n :不执行,就查询语法
-v :先显示再执行
-x : 还是显示,带+号 - 所涉及的命令
$(seq 1 100)