Shell 运算符与流程控制

5 篇文章 0 订阅

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"

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值