我正在使用一个shell脚本,我需要区分tar.gz , gz | bz等
我首先提取文件的扩展名,然后尝试使用case
来匹配它,我的第一个例子是*tar*
,它应该在扩展名中与tar
匹配,因为它们可以用相同的命令提取。
问题是下一组语句,我试图匹配gz
bz2
等。我需要一个匹配bz
或gz2
的case模式,但同时也检查扩展中没有tar
。
我无法用shell模式匹配,写了这个[!(tar).*(bz2|bz)$]
(请不要笑)
任何帮助将不胜感激。
case
进程顺序,所以如果你首先查找tar
文件,它不应该到下一个:
case "${word}" in *.tar* ) #process tar :;; #break *.bz2|*.bz ) #process bz2 and bz :;; #break * ) #default :;; esac