2017-08-29 8 views
0

if elseループがwhileの中にありますが、それは私に適切な出力が得られていません。私は取得していますループスクリプトがシェルスクリプトで動作していないときに勝つ

#!/bin/bash 

set -x 
inputFile=/data2/example/output1.txt 
while read col1 col2 col3; do 
if [ $col2=='Success' ] 
then 
echo " This is Green" 
else 
echo " This is Red" 
fi 
done < ${inputFile} 

出力は次のようになります。ここでは

+ read col1 col2 col3 
+ '[' Success==Success ']' 
+ echo ' This is Green' 
This is Green 
+ read col1 col2 col3 
+ '[' Success==Success ']' 
+ echo ' This is Green' 
This is Green 
+ read col1 col2 col3 
+ '[' Failed==Success ']' 
+ echo ' This is Green' 

それはelse一部を入力し、継続的にThis is Greenを表示していません。

+0

のこの

"$col2" = "Success" 

を使用しますか? – Danieboy

答えて

0

それは小さな文法間違いだった:これは私の問題を解決し

if [ "$col2" == Success ] 

0

これは、変数と文字列を比較する方法です。だからあなたの入力が正確に何である代わりに

$col2 == 'Success' 
関連する問題