bash:在if satement中使用条件AND OR



我想根据文件名的开始和结束来选择文件。我写了下面的代码,但我的代码仍然有问题,它没有打印任何内容。

详细信息:我下面的脚本应该循环遍历目录$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中,我有以下文件:XT&20220202ffffff.bz2T&2022020mmmmmm.bz2LMMMM.bz2

输入是$path中的文件,输出是删除文件。

您既不需要for循环,也不需要[[...]]条件构造。你所需要的只是模式匹配:

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

如果输出看起来正常,则丢弃echo

相关内容

  • 没有找到相关文章

最新更新