2013-10-16 35 views
0

/else語句,我不知道你能不能幫我...我有下面的代碼有問題:代碼忽略,如果在bash

#!/bin/bash 

if [ $# = 0 ]; then 
    awk '{for (x=5; x<=NF; x++) {printf "%s ", $x } printf "\n" }' affy.txt 
else 
    columns="" 
    for i in [email protected]; do 
     if [ $i = "-g" ]; then 
      word=$2 
      is_there_g="True" 
      break 
     else 
      is_there_g="False" 
     fi 
     columns+="$i," 
     shift 
    done 
    columns=${columns%,} 
    if [ $is_there_g="False" ]; then 
     cat affy.txt | cut -d" " -f$columns 
    else 
     grep $word affy.txt | cut -d" " -f$columns 
    fi 
fi 

echo $is_there_g 

所以,有獲得結果的問題我想要。這是關於最後一個If/else寫的。

$is_there_g="False",我想這樣做:"cat affy.txt | cut -d" " -f$columns"

並且如果它是True,那麼:"grep $word affy.txt | cut -d" " -f$columns"

我在我的代碼末尾使用"echo $is_there_g"進行評估。

所以問題是我得到的結果始終是一個虛假的情況下,即使"echo $is_there_g" gives me a True value。爲什麼???

回答

3

您需要周圍的操作空間:

if [ $is_there_g = "False" ]; then 

man bashman test以獲取更多信息。

+0

哦,就是這樣!非常感謝! – user2886545

+1

@ user2886545:如果這解決了您的問題,您應該通過點擊綠色複選標記來接受它。 –