一,注释规范
1,申明shell类型
2,程序名称
3,版本号
4,创建时间
5,更改后时间
6,作者信息:作者,联系方式
7,程序作用,注意事项
8,版本更新说明
脚本语法检测:bash -n test.sh
脚本命令语法调试并执行:bash -x test.sh
二,变量
内置变量:PS1,PATH,HISTORY,SHELL,PID,PPID,$?,$$,UID,HISTSIZE
自定义变量
变量命名法则:1,驼峰法,2,全大写,3,以下划线连接_,4,局部变量小写
位置变量:
$1,$2..${10}
$0 命令本身包括路径br/>$*传递给脚本的所有参数,合成一个字符串
$@传递给脚本的所有参数,每个参数独立
$#传递给脚本的参数的个数
注意 :$@,$*只在被双引号包起来才有差异
清空所有位置变量:set --
$? 值为0------成功
$? 值为1-255----失败
格式化输出:
%s-------------字符串
%f--------------浮点格式(小数点)
%%--------------表示%本身
\t--------------tab空格
\n--------------换行
\r--------------回车
\f--------------换页
取随机数:$RANDOM (0-32767)
取10以内的随机数:echo $[RANDOM%10]
增强型赋值:
+= i+=10 i=i+10
-= i-=j i=i-j
= i=j i=i*j
/=
%= i%=j i=i%j
++ i++ i=i+1
-- i-- i=i-1
字符串测试
[[]] 使用正则匹配或通配符
[] 普通用法
==字符串相同
=~字符串包含,右包含左
[15:43:05-root@jack myshell]#[[ $file == .txt ]]
[15:43:11-root@jack myshell]#echo $?
0
[15:43:14-root@jack myshell]#[[ $file == "
.txt" ]]
[15:43:20-root@jack myshell]#echo $?
1
若作为通配符不要加"",加引号相当于转义
-r 可读
-w 可写
-x 执行
-u 存在且有suid权限 文件用户属主权限
-g 存在且右sgid权限 创建文件可继承属组
-k 存在且有sticky权限 不可删除他人文件
组合条件测试
[ test1 -a test2 ] 条件一和二都满足为真
[ test1 -o test2 ] 条件一和二满足其一为真
&&和||混和使用,&&条件测试需在前
数组定义
array=(可以是命令结果或者其他元素)
numa=${array1[*]} --------取出数组中所有元素
numb=${#array1[@]} --------取数组中元素的个数
numd=${!array1[@]} --------取数组中元素的下标
根据下标取元素:${arrary[0]} //${arrary[$numd}
来源:oschina
链接:https://my.oschina.net/u/4399154/blog/4497355