运维开发网

shell规范

运维开发网 https://www.qedev.com 2020-08-16 13:09 出处:51CTO 作者:虚拟化王浩
一,注释规范1,申明shell类型2,程序名称3,版本号4,创建时间5,更改后时间6,作者信息:作者,联系方式7,程序作用,注意事项8,版本更新说明脚本语法检测:bash-ntest.sh脚本命令语法调试并执行:bash-xtest.sh二,变量内置变量:PS1,PATH,HISTORY,SHELL,PID,PPID,$?,$$,UID,HISTSIZE自定义变量变量命名法则:1,驼峰法,2,全大

一,注释规范

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}

0

精彩评论

暂无评论...
验证码 换一张
取 消