シェルがループの一から二を達成するための2つの方法があり

はじめに:

  本番環境のシナリオ:SDB-SDN / data2- / DATANに対応するためには、ネストされたforループを解決する必要がある、別のハードディスクをマウントするために、様々な量のルートディレクトリを作成し、I IN用として書か1 2 3、ABC、1A、2B、3Cのjに対してループは最初に第一のサイクル第二のサイクルの対応となり、一方、次いで書き込ま実行のサポートに表示されないようにこの従属変数は、第3の可変置換および直接使用を例示するための例の配列変数の数を用いる方法を用いて、二つの異なる方法は、最終的に、それぞれ、達成しようとする時間がかかりました。

変数の置換:

  簡単に言えば、その後、交換するsedを使用し、無関係なデータを挿入することです。

以下のための $のすべて。行う
#$ Ereryシステムは、ハードドライブ、fstabの設定ファイルのフォーマットを記述するために1つのパーティションとダーティデータwwwdata1ずつ搭載しました

        partedを -sは/ dev / $ I mklabel GPT&>は/ dev / nullに ||エコー" $ {I} part01問題、チェック" 
        partedの -sは/ dev / $ I mkpartをプライマリ1 `partedのは/ dev / $ IPを| grepの" ^ Diskは" |カットは-d " " -f2`&>は/ dev / nullに ||エコー" $ {I} part02問題、チェック" 
        mkfsコマンド -Tについては、largefile -t ext4の-b 4096 -m 2 / DEV / {I} $ 。1&>は/ dev / nullに ||エコー" $ {I}のmkfsの問題は、チェック" 
        エコーの/ dev / $ {I} 1 / wwwdata1 ext4のデフォルト0 " >>の/ etc / fstabに
        エコー" - $ {I}パーティションの完全なディスクフォーマット- " && SLEEP 2
行われ
以下のためにある $フォルダ名。行う

#$フォルダ名は、フォルダ名を表し、使用はwwwdata1の使用に一度、各代替変数、wwwdata1を置き換えるsedの、あなたは目標を達成することができます。
SED -i 0、/ wwwdata1 / S // $ {A} /の/ etc / fstabの&&エコー" -ディスクを搭載フォルダ{A} $ - " && ||エコースリープ1」 - $ {} マウント失敗- 「行って

アレイ:

  これは、2つの配列中の対応する要素を必要とし、その要素のインデックスとして呼び出されるループのために使用します。例えば、単純なポイントは、私たちは罰金を理解することができます。

#!/ binに/ bashの
ファイル =(1  2  3 
ディスク = (ABC)
 のための I における配列` 0  2 `。
        エコー" $ {ファイル[I]} $ {ディスク[I]} " 
で行わ

 

   これらの2つの方法が可能であり、実際にそれを適用するには、第二の方法は、より科学的、より堅牢なスクリプトであることは明らかです。

おすすめ

転載: www.cnblogs.com/xiaoyuxixi/p/12088709.html