shell脚本判断符号

3、判断符号[] (跟test基本相同)
(1)[ XXXX ] (注意[ ]和脚本XXXX之间保留空格)
(2)和!=用于比较字符串;(, != 两边必须有空格)
(3)整数比较只能使用-eq,-gt, ge, lt, le这种形式(-eq: equal, -gt: greater than, -ge: greater than or equal to, -lt: less than, le: less than or equal to)
(4)[ ]中的逻辑与和逻辑或使用-a 和-o 表示(-a: and, -o: or)
(5)&&、||、<和> 操作符如果出现在[ ]结构中的话,会报错。

任务:根据用户输入执行不同操作。
1)编辑脚本 vim shell03.sh
#!/bin/bash

read -p "Do you want to save the file[y/n]? " choice

[ $choice == ‘y’ -o $choice == ‘Y’ ] && echo “you save the file.” && exit 0
[ $choice == ‘n’ -o $choice == ‘N’ ] && echo “you don’t save the file.” && exit 0
在这里插入图片描述

2)设置权限 chmod u+x shell03.sh
在这里插入图片描述

3)执行脚本 ./shell03.sh
在这里插入图片描述

4、shell script参数
(1)shell script默认参数
ls -l,其中-l就是shell脚本参数。
在这里插入图片描述
(2)如何使用用户自定义脚本的参数
/path/scriptname arg1 arg2 arg3 arg4 # 参数之间用空格隔开
$0 $1 $2 $3 $4
$n:n=0、1、2、3、……
$#:表示参数个数,就上面案例而言,其值为4
$@:表示"$1" “$2” “$3” “$4” 每个变量是独立的,用双引号括起来
$*:表示"$1 $2 $3 $4"

任务:要求脚本输入4个参数,如果参数不够,提示用户;如果输入了4个参数,显示4个参数的值。

1)编辑脚本:vim shell04.sh
#!/bin/bash

[ $# -lt 4 -o $# -gt 4 ] && echo "Four parameters are required! " && exit 1

echo "script name : $0’
echo “parameters: $1 $2 $3 $4”
echo “parameters: $@”
echo “parameters: $*”
在这里插入图片描述
2)设置权限:chmod u+x shell04.sh
在这里插入图片描述
3)运行脚本:./shell04.sh
在这里插入图片描述

(3)参数偏移 shift
shift可以造成参数变量号码偏移。
下面,通过案例来演示shift的用法。
1)编辑脚本:vim shell05.sh
#!/bin/bash

echo “the number of parameters: $#”
echo “all the par ameters: p@”.

#shift one parameter
shift
echo “the number of parameters : $#”
echo “all the parameters: $@”

#shift three parameters
shift 3

echo “the number of parameters: $#”
echo “all the parameters: $@”
在这里插入图片描述
2)设置权限:chmod u+x shell05.sh
在这里插入图片描述

3)执行脚本:./shell05.sh mike howard alice green smith
在这里插入图片描述

思考题:
1)脚本参数有5个,执行shift 100,会不会报错?
不会报错,结果没有造成偏移效果。
在这里插入图片描述
2)shift的参数可不可以是负整数,表明向前偏移?
在这里插入图片描述

运行脚本会报错:
在这里插入图片描述
3) shift的参数可不可以是0
在这里插入图片描述
在这里插入图片描述
5、条件判断
(1)单分支结构
if [ 条件 ]; then
语句组
fi

(2)双分支结构
if [ 条件 ]; then
语句组1
else
语句组2
fi

例1、比较两个整数大小。
1)编辑脚本:vim if01.sh
read -p “a=” a
#!/bin/bash

read -p “a=” a
read -p “b=” b

if [ $a -ge b ] ; t h e n e c h o &quot; b ]; then echo &quot; b];thenecho"a < b &quot; e l s e e c h o &quot; b&quot; else echo &quot; b"elseecho"a >= $b"
fi
在这里插入图片描述
2)设置权限:chmod u+x if01.sh
在这里插入图片描述

3)执行脚本:./if01.sh
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值