PS:要转载请注明出处,本人版权所有。
PS: 这个只是基于《我自己》的理解,
如果和你的原则及想法相冲突,请谅解,勿喷。
前置说明
本文作为本人csdn blog的主站的备份。(BlogID=025)
本文发布于 2016-08-25 17:06:11,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=025)
环境说明
无
前言
无
Shell
注释:本文中主要参考《shell脚本学习指南》和自己的理解所写而成
- Shell 变量问题
算术展开:
$((算术表达式)) 返回表达式的值
eg: echo $((1+2*3)) 返回7
变量替换(主要还是用来测试一个变量是否定义且不为空):
$(varname:-0) varname未定义或者为null,返回0
用处:用于测试变量是否定义
$(varname:=0) varname未定义或者为null,给varname赋值0
用处:用于给未定义变量赋初值
$(varname:?msg) varname未定义或者为null,返回msg
用处:用于当变量未定义时,提示一个信息
$(varname:+1) varname定义或者不为null,返回1
用处:用于测试变量已经存在切不为null,返回1
位置参数(用于向脚本传入参数):
${num} 获取传入num'th的值
$# 返回传入参数总的个数
$@ 以多个字符串方式返回所有传入参数
$* 以一个字符串方式返回所有传入参数
特殊符号:
$? 最近命令执行的返回值,0 表示成功执行,非0 表示有异常
- Shell 脚本流控制
逻辑运算
test 等效于 [ ...... ]
eg: test "$var" = "$var1" 等效 [ "$var" = "$var1" ]
下面是非常重要的test 选项表
if 控制语句
格式:
if pipeline
then
......
elif pipeline
then
......
else
......
fi
for 控制语句(支持continue,break)
格式:
for var [in list]
do
......
done
while 控制语句(支持continue,break)
格式:
while condition
do
......
done
until 控制语句(支持continue,break)
格式:
until condition
do
......
done
- 脚本函数
函数定义(支持return 从函数返回):
functionName(){
........
return val
}
函数调用(特殊变量$#,$@,$*等特殊位置变量会被临时覆盖):
funcitonName arg0 arg1 arg2 ...
后记
无
参考文献
无
PS: 请尊重原创,不喜勿喷。
PS: 要转载请注明出处,本人版权所有。
PS: 有问题请留言,看到后我会第一时间回复。