bash 脚本中的 if 条件

bash 脚本中的 if 条件

我有一个文本文件,我想检查下面的某些行

com1=`awk 'NF{a=b;b=$0} END{print (b ~ /\com/)? "Yes" : "No"}' $myfile`
com2=`awk 'NF{a=b;b=$0} END{print (b ~ /\t/)? "Yes" : "No"}' $myfile`
com3=`awk 'NF{a=b;b=$0} END{print (a ~ /\t/)? "Yes" : "No"}' $myfile`
echo "$com1 --- $comp2 --- $comp3"
if [[ $comp1="Yes" ]] && [[ $comp3="No" ]]; then
    echo "condition1"
fi
if [[ $comp1="Yes" ]] && [[ $comp3="Yes" ]]; then
    echo "condition2" 
fi
if [[ $comp2="Yes" ]]; then
    echo "condition3"
fi

我的文件是:

1.1.m
1.2.t

com

输出是“

Yes --- No --- No
condition1
condition2
condition3

我有两个问题。首先:我想检查文本文件最后一行(1.2.t)之前的非空行是否包含“t”。所以答案 0f $com3 应该是“是”,但在我的输出中是“否”。最重要的问题是“如果条件”都不起作用。

答案1

[[ $comp1 = "Yes" ]] && [[ $comp3 = "No" ]]

相关内容