This question already has an answer here:
Why does script not recognize file extension?
                                
                                    (1个答案)
                                
                        
                                3年前关闭。
            
                    
我目录中的文件

262_V01_C00_R000_TEx_BL_2048H.dat  262_V01_C02_R000_THx_BL_2048H.dat
262_V01_C01_R000_TEy_BL_2048H.dat  262_V01_C03_R000_THy_BL_2048H.dat


我的剧本

#!/bin/bash

for i in *.dat;
do
    if [ "$i" == "$TEx" ];then
        file1= "$i"
    fi
    if [ "$i" == "$TEy" ];then
        file2= "$i"
    fi
done

echo file1
echo file2


我有

file1
file2


我的目的是

file1=262_V01_C00_R000_TEx_BL_2048H.dat
file2=262_V01_C00_R000_TEy_BL_2048H.dat

最佳答案

尝试:


[[ "$i" =~ TEx ]]代替[ "$i" == "$TEx" ]
file1=$i=周围没有空格。另外,双引号也不是必需的。
echo file1=$file1不仅是echo file1

关于linux - 我的模式匹配有什么问题? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38858969/

10-15 14:18
查看更多