使用通配符将变量与字符串进行比较

时间:2014-09-15 07:44:23

标签: linux shell if-statement wildcard ksh

我正在创建一个脚本来读取某个目录中的每个文件并使用每个文件中的一些信息,但是每个目录中都有一个名为“logdia + date”的文件,我不希望将其包含在我的循环中,我有尝试使用if语句将文件的rute与使用通配符的字符串进行比较,但条件永远不会失败,并且它总是将“logdia”文件包含到我的循环中,我缺少什么?三江源

list_dir=$(ls -tr /opt/srv001/app/sam/trazas/*$v_fecha*)

for dir in $list_dir
do
if [ $dir != "*logdia*" ]
 then
 //Do stuff
fi
done

1 个答案:

答案 0 :(得分:1)

正确的方法如下:

for dir in /opt/srv001/app/sam/trazas/*$v_fecha*; do
   if [[ "$dir" != *"logdia"* ]]; then
      echo "Do stuff Here"
   fi
done
  1. 使用glob模式进行比较时,将glob模式保留在引号之外。
  2. 避免解析ls的输出。