shell bash:在if语句中使用条件AND OR

icomxhvb  于 2022-11-16  发布在  Shell
关注(0)|答案(1)|浏览(318)

我想根据文件名的开始和结束来选择文件。我写了下面的代码,但我的代码仍然有问题,它不打印任何东西。
详细信息:我下面的脚本应该循环目录$path中的文件位置,并检查文件名是否以(${t}X${t}以“.bz2”结尾)开始,从存储库中删除文件。

t="T"
for f1 in $path/*; do
    if [[ ("$f1" == "${t}"* || "$f1" == "X${t}"*) && ("${f1: -4}" == ".bz2")]]; then 
       echo "IM here to remove files"
    fi

在我的$path中有这些文件:****************************
$path中输入的是文件,输出的是删除文件。

bt1cpqcv

bt1cpqcv1#

你不需要for循环,也不需要[[...]]条件结构,你只需要模式匹配:

t="T"
echo rm "$path"/{X,}"$t"*.bz2

如果输出正常,则删除echo

相关问题