3

同じ変数セットを再利用すると、bash スクリプトで予期しないイベントが発生する可能性があるかどうかを知りたいのですが、それは一般的に良い習慣と見なされていますか?

クエリをもう少し明確にするために。

次のようなスクリプトがあります。

max=`cat loc1.c  | wc -l`   
bar=1        

while [ $bar -lt $max ]
do

    f1=`awk -v vr1=$bar 'NR == vr1' loc1.c`
    f2=`awk -v vr1=$bar 'NR == vr1' loc2.c`

    if [[ a random file  exists ]] ; then # use var1 var2 var3 ; fi 
    if [[ a random file2 exists ]] ; then # use var1 var2 var3 ; fi 
    if [[ a random file3 exists ]] ; then # use var1 var2 var3 ; fi 

    ((bar++))
done

ファイル loc1 および loc2 には、改行で区切られたファイル パスがリストされています。パスは、行番号に関して変数 f1 および f2 に転送されます。このループは、loc1 内の各ファイル (パスで指定) が loc2 内のファイルで何らかのデータ操作を行うまで続きます。

あらゆる種類の提案を歓迎します。

次のコードでは、変数 var1,var2 ,var3 [..] を再利用しています。

4

2 に答える 2

5

変数の使用とは関係ありませんが、ファイルの繰り返しを単純化することができbarますmax

while read -r f1 && read -r -u 3 f2; do
    if [[ a random file  exists ]] ; then # use var1 var2 var3 ; fi 
    if [[ a random file2 exists ]] ; then # use var1 var2 var3 ; fi 
    if [[ a random file3 exists ]] ; then # use var1 var2 var3 ; fi
done < loc1.c 3< loc2.c
于 2012-07-17T13:02:54.817 に答える
3

再利用された変数に関する唯一の問題は、それらが使用されるスクリプトの各ポイントで適切に初期化されるかどうかです。各段落が使用する前に常に値を設定する場合、再利用に害はありません。主なガイドラインは、コードを明確にすることです。コードが明確であれば、問題はありません。

昔々、変数の再利用によって節約されたメモリが再利用されると主張した人もいるかもしれません。最近、私はその主張を気にしません。

于 2012-07-17T12:44:13.263 に答える