确定Bash变量是否是多个值之一
发布时间:2020-12-15 22:48:00 所属栏目:安全 来源:网络整理
导读:假设 Bash变量$x有三个有效值:foo,bar和baz.如何编写表达式来确定$x是否是这些值之一?例如,在 Python中,可能会写: x in ('foo','bar','baz') 是否有Bash等价物,还是有必要进行三次比较?再次,在Python中,人们可以写: x == 'foo' or x == 'bar' or x == '
假设
Bash变量$x有三个有效值:foo,bar和baz.如何编写表达式来确定$x是否是这些值之一?例如,在
Python中,可能会写:
x in ('foo','bar','baz') 是否有Bash等价物,还是有必要进行三次比较?再次,在Python中,人们可以写: x == 'foo' or x == 'bar' or x == 'baz' 在Bash中表达上述内容的正确方法是什么? 解决方法
最简单的方法:
case $x in foo|bar|baz) echo is valid ;; *) echo not valid ;; esac 有点复杂 shopt -s extglob if [[ $x == @(foo|bar|baz) ]]; then echo is valid else echo not valid fi 更复杂: is_valid() { local valid=( foo bar baz ) local value=$1 for elem in "${valid[@]}"; do [[ $value == $elem ]] && return 0 done return 1 } if is_valid "$x"; then echo is valid else echo not valid fi (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- twitter-bootstrap – Bootstrap float divs从左到右
- angular-cli build prod“未加载运行时编译器”
- 在PhoneGap设备后初始化我的angularJs应用程序
- 【数据结构】排序算法(二)之交换排序之快速排序(QuickSor
- BOOTSTRAP学习之路(1)
- angularjs – 使用ng-Style更改背景颜色
- 远程调用通讯相关技术简介RMI、Hessian、Burlap、Httpinvok
- Mongodb副本设置与Docker 1.12服务
- osx – 我如何看到我的$PATH变量在OS X上的当前值?
- bash – 在shell脚本中使用mongodb的结果