1.运算符
$((a+b)) :
$[a+b] : 建议使用
expr a + b :
expr 的 乘以* 需要转义 为\*
运算符之间需要有空格,整体使用``(反引号)包起来
2.1 if判断与常用判断条件
[ 判断式 ] : 注意判断式俩端需要有空格
if 判断 :
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ] #对比java中的else if
then
程序
else
程序
fi #以反if结尾
=:字符串比较
对于俩个整数:
-lt : 小于
-le : 小于等于
-eq : 等于
-gt : 大于
-ge : 大于等于
-ne : 不等于
#!/bin/bash
if [ $1 -lt $2 ]
then
echo "$1小于$2"
fi
if [ $1 -le $2 ]
then
echo "$1小于等于$2"
fi
if [ $1 -eq $2 ]
then
echo "$1等于$2"
fi
if [ $1 -gt $2 ]
then
echo "$1大于$2"
fi
if [ $1 -ge $2 ]
then
echo "$1大于等于$2"
fi
if [ $1 -ne $2 ]
then
echo "$1不等于$2"
fi
按照文件权限进行判断
-r 有读的权限
-w 有写的权限
-x 有执行的权限
#!/bin/bash
if [ -r /home/acofkings/shell/hello2.sh ]
then
echo "拥有读的权限"
fi
if [ -w /home/acofkings/shell/hello2.sh ]
then
echo "拥有写的权限"
fi
if [ -x /home/acofkings/shell/hello2.sh ]
then
echo "拥有执行的权限"
fi
按照文件类型进行判断
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并是一个目录
#!/bin/bash
if [ -f $1 ]
then
echo "文件存在且是常规文件"
fi
if [ -e $1 ]
then
echo "文件存在"
fi
if [ -d $1 ]
then
echo "文件存在且是一个目录"
fi
3.case判断
case $变量名 in
"值1")
如果变量的值等于值 1,则执行程序 1
;;
"值 2")
如果变量的值等于值 2,则执行程序 2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
例:
#!/bin/bash
case $1 in
"1")
echo "1"
;;
"2")
echo "2"
;;
*)
echo "other"
;;
esac
4.for循环
俩个格式
格式一:
for 变 量 in 值 1 值 2 值 3…
do
程序
done
例:
#!/bin/bash
for i in "$*"
do
echo "$i"
done
for j in "$@"
do
echo "$j"
done
$* 中参数作为一个整体输出
$@中参数一个个输出
格式二:
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
例:
#!/bin/bash
SUM=0
for ((i=0;i<=100;i++))
do
SUM=$[$SUM+$i]
done
echo "SUM=$SUM"
5.while循环
while [ 条件判断式 ]
do
程序
done
#!/bin/bash
#从命令行输入一个数 n,统计从 1+..+ n 的值是多少?
SUM=0
i=0
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
i=$[$i+1]
done
echo "SUM=$SUM"