在Bash中使用变量作为案例模式
发布时间:2020-12-15 18:53:32 所属栏目:安全 来源:网络整理
导读:我正在尝试编写一个Bash脚本,该脚本在case语句中使用一个变量作为模式.但是我不能让它上班. 案例陈述: case "$1" in $test) echo "matched" ;; *) echo "didn't match" ;;esac 我已经尝试使用$test作为aaa | bbb | ccc,(aaa | bbb | ccc),[aaa,bbb,ccc]和其
我正在尝试编写一个Bash脚本,该脚本在case语句中使用一个变量作为模式.但是我不能让它上班. 案例陈述: case "$1" in $test) echo "matched" ;; *) echo "didn't match" ;; esac 我已经尝试使用$test作为aaa | bbb | ccc,(aaa | bbb | ccc),[aaa,bbb,ccc]和其他几种组合.我也尝试过这样的case语句:@($test),@($(echo $test)),$($test).也没有成功. 编辑 为了清楚起见,我希望变量表示多个模式,如下所示: case "$1" in aaa|bbb|ccc) echo "matched" ;; *) echo "didn't match" ;; esac
您可以使用extglob选项:
#! /bin/bash shopt -s extglob # enables pattern lists like +(...|...) test='+(aaa|bbb|ccc)' for x in aaa bbb ccc ddd ; do echo -n "$x " case "$x" in $test) echo Matches. ;; *) echo Does not match. esac done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 在Angular Reactive Forms中使用updateOn:’blu
- xfire開發webservice所需jar包
- 数组 – 可以通过在另一个数组中的包含来过滤ang
- 《数据结构》学习-- Hash(2) --Separate Chainin
- unix – 如何使用awk进行文件复制.在awk中使用拆
- Ack.vim在Windows上“没有这样的文件或目录”错误
- angularjs – Angular UI Bootstrap响应Navbar下
- 《数据结构》第五章 树和二叉树 同学问题收集站
- 安装nagios时出现version 1.21 does not match b
- AngularJS(Restangular):做出承诺阻止?需要使用
热点阅读