如果条件为真,为什么我的脚本不执行then语句?

我有数百个文件,我想根据它们包含的关键字的值将它们分为两组。关键字及其可能的值为DATA_CONVERSION_TYPE =“ TABLE”或DATA_CONVERSION_TYPE =“ 12Bit”

我编写了以下脚本,它们使用grep在文件中搜索关键字。但是,尽管我的意图有所不同,但else条件仍在执行。正如jhnc所建议的,我为每个变量都做了echo "$Variable_Name" | od -c。我的变量TYPE有一个\ r字符,但TAB没有。是否可能以某种方式告诉bash忽略它,或添加/删除字符以使它们的变量相同?

#!/usr/bin/env bash

TAB='DATA_CONVERSION_TYPE = "TABLE"'
echo "$TAB" | od -c

for LABEL in ~/data/test_nov12/*.LBL
do
        TYPE=$(grep 'DATA_CONVERSION_TYPE = "TABLE"' $LABEL)
        echo "$TYPE" | od -c
        if [ "$TYPE" = "$TAB" ]
        then
                echo "Table-encoded"
        else
                echo "12-bit"
        fi
done

这将输出

0000000    D   A   T   A   _   C   O   N   V   E   R   S   I   O   N   _
0000020    T   Y   P   E       =       "   T   A   B   L   E   "  \n    
0000037
0000000    D   A   T   A   _   C   O   N   V   E   R   S   I   O   N   _
0000020    T   Y   P   E       =       "   T   A   B   L   E   "  \r  \n
0000040
12-bit

谢谢

imcoolmint 回答:如果条件为真,为什么我的脚本不执行then语句?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3079288.html

大家都在问