2016-04-07 13 views
0

私はソフトウェアのテストに使用した機能を持っています。この関数は、関数が2つのパラメータ、つまりcurrentSetNameとfailureDetectedを持つ場所で呼び出す必要があります。これはコードです:パラメータを持つ関数をbashでどのように呼び出すことができますか?

#!/bin/bash 

failureDetected=0 
nbOfAllTests=0 
nbOfDetectedFailures=0` 
currentSetName="fair" 
count_input=1 

removeFromCurrentSet(){ 
if [[("$1" == "good")]] 
    then 
     #mv Partition/currentSet/* Partition/good_used 
     echo "Hai good" 

    elif [[("$1" == "fair")]] 
    then 
     if [[("$2" == "0")]] 
     then 
      #mv Partition/currentSet/* Partition/poor_used 
      echo "hai fair poor_used" 
     else 
      #mv Partition/currentSet/* Partition/good_used 
      echo "hai fair good" 
     fi 
else 

      #mv Partition/currentSet/* Partition/poor_used 
      echo "jjj poor" 

fi 
} 

removeFromCurrentSet currentSetName failureDetected 

私は上記のコードを使用しますが、うまくいきません。あなたは問題のために私を助けることができますか?どのように関数を正確に呼び出すことができますか?

答えて

3

あなたは間違って引数を渡しています。 currentSetNamefailureDetectedが展開されていないので、あなたの元のコードは、ちょうど2つの文字列を渡す

removeFromCurrentSet "currentSetName" "failureDetected" 

に相当します。最初に$を使用して変数を展開する必要があります。関数にあなたの変数の値を渡すために

は、代わりにこれを試してください: `$` +周りの文字は変数式がそうでなければ、それの一部であると解釈されてしまう場合

removeFromCurrentSet "${currentSetName}" "${failureDetected}" 
+2

中括弧にのみ必要です。 –

+0

それは動作します。ご協力ありがとうございました。 :) –

+0

ありがとう@jotikそれは私の問題を解決しました。申し訳ありません私は前に言っていない –

関連する問題