2016.9.8
1.字符串运算符
= : 判断两个字符是否相等【 $string1 = $string2 】
!= :判断两个字符是否不相等【 $string1 != $string2 】
-z :判断字符串长度是否为0
string=""
if [ -z $string ]
then
echo "length=0"
else
echo "length!=0"
fi
-n :判断字符串长度是否不为0
string=""
if [ -n $string ]
then
echo "length!=0"
else
echo "length=0"
fi
str :判断字符串长度是否为0,字符串是否存在
2.文件运算符
-d:目录文件
-f:普通文件
=r:可读文件
-w:可写文件
-x:可执行文件
-e:文件是否存在
if [ -e 0908 ]
then
echo "文件已存在"
else
mkdir 0908
fi
3.case命令
case 操作符 in
模式1)
语句1
;;
模式2)
语句2
;;
模式3)
语句3
;;
模式4)
语句4
;;
*)相当于if语句中的else
esac
printf "input two numbers: "
read num1
read num2
printf "input yunsuan"
read op
case $op in
"+")
let value=num1+num2
printf "$value\n"
;;
"-")
let value=num1-num2
printf "$value\n"
;;
"")
let value=num1num2
printf "$value\n"
;;
"/")
let value=num1/num2
printf "$value\n"
;;
esac
4.while运算
while [条件]
do
语句
done
sum=0
i=1
while [ $i -le 100 ] #((i<=100))
do
let sum+=i
let i++
done
printf " sum=%d\n" "$sum"
5.shell参数
$0:代表这个可执行文件本身
$1:第一个参数
$2:第二个参数
...
$n:第n个参数
$#:参数的个数
//0.是否有参数
//1.判断这个文件是否存在
//2.如果不存在,输出错误信息
6.for 循环
for 变量 in 参数变量
do
语句
done
7.数组
1.定义:
(1)array=(1 2 3 4 5)
(2)array[0]=1
array[1]=4
array[4]=6
(3)数组元素访问
${数组名[下标]} #加上{},表示为一个整体
(4)访问数组所有元素
${array[@]}
${array[*]}
(5)@和*的区别
array=(1 2 3 4 5)
${array[@]}="1" "2" "3" "4" "5"
${array[*]}= "1 2 3 4 5"
8.shell函数
1.定义
[function] functionName
{
语句体
}
function fun1
{
printf "====\n"
}
fun1
2.functionName
function fun1
{
for value in "$@" //@
do
printf "$value\n"
done
printf "====\n"
}
array=(1 2 3 4)
fun1 ${array[@]}
捕获.PNG
function fun1
{
for value in "$*" //*
do
printf "$value\n"
done
printf "====\n"
}
array=(1 2 3 4)
fun1 ${array[@]}
捕获.PNG
3.如果shell函数传参,传的参数大于等于10个,在函数里面取第10 个数${10}
4.函数的返回值由$?去接收
1.$?: 它是临时保存最后一次运行的shell函数return出来的值
2.如果return $value出来的值$value>255,实际上返回出来的结果应该是$value%256
3.如果需要接受比255大的数,使用echo命令去保存shell函数的结果集,接收用另外一个变量
value去保存结果集,然后再进行运用,实际上value保存到的结果是shell函数echo后面的结果
function sum()
{
echo
}
value='sum'
printf "%\n" "$value"