shell编程if遇到多条件时能否简化

比如if["$3"=""]||["$3"="1"]||["$3"="2"]||["$3"="3"]||["$3"="4"]||["$3"="5"]||["$3"="6"]... 比如

if [ "$3" = "" ] || [ "$3" = "1" ] || [ "$3" = "2" ] || [ "$3" = "3" ] || [ "$3" = "4" ] || [ "$3" = "5" ] || [ "$3" = "6" ] || [ "$3" = "7" ];then

我要判断$3等于空或者等于1~7
这样写太臃肿了,能否简化写?
展开
 我来答
小米飞猫
2013-06-28 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部
[ -z "$3" ] || [[ "$3" =~ '[1-7]' ]]
更多追问追答
追问
我输入大于7的数字,一样显示ok
#!/bin/bash

echo "enter a number"
read num

if [ -z "$num" ] || [[ "$num" =~ '[1-7]' ]]; then
echo ok
else
echo bad
fi
如果去掉 [ -z "$num" ] ||就正常
追答

[1-7] 上边俩引号去掉。手误写错了。


本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
whudwl
2013-06-28 · TA获得超过1579个赞
知道小有建树答主
回答量:2118
采纳率:50%
帮助的人:1236万
展开全部
if [ $a -ge 1 ] && [ $a -le 7 ];then

这样不就行了么

追问
还有个条件呢

=“”(等于空),或者=1,或者=2 ……或者=7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式