字符串运算符
=:判断两个字符串是否相等
!=:判断两个字符串不等
-z:判断字符串长度为0
【图1】
str:判断字符串长度是否为0,字符串是否存在
if [ $string1 ]不用写入str
【图8】
文件运算符
-d:判断是否是目录文件
-f:判断是否是普通文件
-r:判断是否具有可读权限
-w:判断是否具有可写权限
-x:判断是否具有可执行权限
-e:判断文件是否存在
【图7】
case语句
case 操作数 in
模式1)
语句1
;;
模式2)
语句2
;;
模式3)
语句3
;;
*)相当于IF语句中的else
语句4
;;
esac
注意:*是不需要""
while[条件]
do
语句
done
【图9】
shell参数
$0:代表这个可执行文件本身
$1:第一个参数
$2:第二个参数
$n:第n个参数
$#:参数的个数
$@:"1" "2"
$*:"1 2"
$?:它是保存最后一次运行的SHELL函数RETURN出来的值
0.是否有参数
1.判断执行的文件是否存在
2.如果不存在,输出错误
3.如果存在,运行
for循环
for 变量 in 参数列表
do
语句
done
数组
1>定义: array=(1 2 3)
2>定义: array[0]=1
array[4]=5
数组元素访问
${数组名[下标]} #加上{},表示为一个整体
访问数组所有的元素
${array[@]}
${array[*]}
@和*的区别,例:
array=(1 2 3)
${array[@]} "1" "2" "3"
${array[*]} "1 2 3"
[图10]
shell函数
1>函数的定义
function functionname
{
语句
}
functionname函数的使用
【保存要注释的部分到函数里,不去调用它就可以完成多行注释】
2>如果shell函数传参,传的参数大于等于10个,在函数里面取第10个数${10}
3>函数的返回值由$?去接收
$?:它是临时保存最后一次运行的shell函数的return出来的值
如果return $value出来的值$value>255,实际上返回出来的结果应该是$value%256
如果需要接收比255大的数,使用echo命令去保存shell函数的结果集,接收用另外一个变量value去保存结果集,然后再进行运用,实际上value保存到结果是shell函数echo后面的结果
function sum()
{
echo "===="
}
value=`sum`
printf "%s\n" "$value"