Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxシェルの動的に生成された配列シリーズのシーケンススキル

Linuxシェルの動的に生成された配列シリーズのシーケンススキル

  

タイトル:1..1000からのすべての偶数の値を達成するためのスクリプトを書くためにlinuxシェルを使用してください。


方法1:

whileループを使って目的の結果を取得します。

start = 1;

total = 0; < Br>

while [$ start -le 1000];してください

[[$(($ start%2))== 0]]&& total = $(($ total + $ start) ));

start = $(($ start + 1));

完了;

echo $ total;


[chengmo @ centos5〜] $ start = 1; total = 0; while [$ start -le 1000]; do [[$(($ start%2))== 0]]&& total = $( ($ total + $ start)); start = $(($ start + 1)); done; echo $ total; 250500

上記の結果は、249500、Linuxシェルの場合、';'です。コマンドラインセパレータとして。 $(())算術記号がわからない場合は、次の点を確認してください。Linuxシェルは、4つの算術(整数および浮動小数点)単純メソッドを実装しています。[[]] []記号を使用する場合は、別の記事linuxシェルを参照できます。論理演算子および論理式の詳細な説明


方法2:

forループで結果を取得します。

start = 0;

total = 0;

$の中のi(seq $ start 2 1000);

total = $(($ total + $ i));

完了;

echo $合計;

[chengmo @ centos5〜] $ start = 0; total = 0; i = $(seq $ start 2 1000); do do = =(($ total + $ i)); done; Echo $ total; 250500


上記のステートメントは、コードに関して最初の方法よりもはるかに優れており、パフォーマンスも非常に優れています。次の比較が見つかります。



比較パフォーマンス:

[chengmo @ centos5〜] $ time(開始= 0;合計= 0; $(seq $ start 2 1000)のiの場合、total = $(($ total + $ i)); done; echo $ total;)250500

実際0m0.016suser 0m0.012ssys 0m0.003s [ ,null,null,3],Chengmo @ centos5〜] $時間(開始= 1;合計= 0; [[$ start -le 1000];; [[$(($ start%2))== 0]]&& total = $( ($ total + $ start)); start = $(($ start + 1)); done; echo $ total;)250500

本物の0m0.073suser 0m0.069ssys 0m0.004s

方法1回は方法2の6倍です!



seq用途:

seq [OPTION] ... LASTseq [OPTION] ... FIRST LASTseq [OPTION] ... FIRST最後のインクリメント

[chengmo @ centos5〜] $ seq 1000‘デフォルトは1で、デフォルトは1です。

[chengmo @ centos5〜] $ seq 2 1000‘ 1

[chengmo @ centos5〜] $ seq 1 3 10 '1から10の間隔は3です結果は1 4 7 10

の説明:デフォルトの間隔は" Space"です。あなたが他に変更したい場合は、パラメータを取ることができます。-s

[chengmo @ centos5〜] $ seq -s '#' 1 3 10

1#4#7#10


アプリケーションのスキル:


  • シリーズの連続配列を生成します。で

    [chengmo @ centos5〜] $ a =($(seq 1 3 10))[chengmo @ centos5〜] $ echo $ {a [1]} 4 [chengmo @ centos5〜] $ echo $ {a [@]} 1 4 7 10




  • 世代連続で同じ文字:で

    [chengmo @ centos5〜] $の配列-s '#' 30 |  Sed -e s /[0-9] * //g '##############################################################################。 >上記の例:インターバル文字‘#’を追加した後、数字を置き換えて連続した同一の文字’#’を書くと、後で書くのに大いに役立ちます。

  • Copyright © Windowsの知識 All Rights Reserved