2011-06-15 17 views
0

用に最適化されたコードを提案親切に以下のコードをより読みであることを確認するために私を助けるか、どのようなシェル言語は、あなたの質問にあるが、ここではKornシェルのバージョンだが与えられたネステッド・ループ

@for i in $(LIST_A); do \ 
      for j in $(LIST_B); do\ 
      if [ "$$i" = "$$j" ] ;then\ 
      echo " A match found ";\     
      else\ 
      echo "Not found any corresponding String in LIST_B ";\ 
        fi; \ 
      done\ 
    done; 
+0

あなたは2つのセットの間の交差点を探していますか?もっと良い解決策があります:http://www.catonmat.net/download/setops.txt – Marcin

答えて

0

わからない(任意の最適化を提案します)あなたは「

(あなたが望むことだ仮定)の両方のループを抜ける

#!/bin/ksh 

LIST_A="a b c d e" 
LIST_B="d f g" 

got_match="0" 

for item_A in $LIST_A 
do 
    #echo $item_A 
    for item_B in $LIST_B 
    do 
     #echo $item_A " " $item_B 
     if [ "$item_A" == "$item_B" ] 
     then 
      echo "matched " $item_A 
      got_match="1" 
      break 2; 
     fi 
    done 
done 

if [ "$got_match" == "0" ] 
then 
    echo "no match" 
fi 

「2を破る」...を利用することができるかもしれないことを...読みやすくするために.. "、おそらくスタイルt興が、私の提案は、次のとおりです。むしろ、iとj

  • より意味のある名前を1行に複数のステートメントを避ける

    1. 使用(使用は避けてください。)
    2. インデント適切に
    3. それはだ場合意図を示すコメントわからない

    もう1つの提案:今後の質問では、他の人がテストを実行して、どの言語であるかを示すために、作業バージョン/スニペットを提供してください。

  • 関連する問題