我想提供一种方法来输入我的脚本ezkill的流程ID,该脚本与我们习惯的打印机页面设置输入具有相同的属性:
a-e
=> abcde
ade
abcdegh
由于这是一种常见的模式,我不想重新发明轮子。 您是否了解我可以重用的一些现有bash功能/程序?
答案 0 :(得分:0)
如果你转换你的模式,那么简单的正则表达式匹配就可以了。
declare -A exps
exps=([range]='a-e', [enum]='a,d,e', [mix]='a-e,g,h')
for c in {a..h}
do
for k in "${!exps[@]}"
do
e="${exps[$k]}"
printf $'is \'%s\' a match for \'%s\'?: ' "$c" "$e"
# transform the pattern expression
[[ "$c" =~ [${e//,}] ]] && printf 'yes' || printf 'no'
printf '\n'
done
done