質問
私の基本的なループように:
for(int i = 0; i < MAX; i++) {
doSomething(i);
}
がbashの場合.
解決
から このサイト:
for i in $(seq 1 10);
do
echo $i
done
他のヒント
for ((i = 0 ; i < max ; i++ )); do echo "$i"; done
のbash for
される変数の反復子)の一覧の言葉の反復子は、反復処理.
る場合でも、制限リストの言葉をいただけるようになって、次の構文:
for w in word1 word2 word3
do
doSomething($w)
done
しょうたいに対して繰り返し処理を実行するものが利用できる seq
コマンドを生成する数値のリスト専用に作成する方法もあります。(1から100例)
seq 1 100
そのためループ:
for n in $(seq 1 100)
do
doSomething($n)
done
注意 $(...)
構文です。ではbashの行動でき、パスを出力からコマンド(この例から seq
について他の for
)
これは本当に有きに対して繰り返し処理を実行するすべてのディレクトリの一部のパスは、例えば:
for d in $(find $somepath -type d)
do
doSomething($d)
done
その可能性は無限のリストが表示されます。
Bash 3.0+ この構文:
for i in {1..10} ; do ... ; done
..回避する産卵を外部プログラムの拡大のシーケンスなど seq 1 10
).
もちろん、これと同じ問題が for(())
溶液に縛られbashでも特定のバージョン(この項れます。
試しに bash
内蔵ヘルプ
$ help for
for: for NAME [in WORDS ... ;] do COMMANDS; done
The `for' loop executes a sequence of commands for each member in a
list of items. If `in WORDS ...;' is not present, then `in "$@"' is
assumed. For each element in WORDS, NAME is set to that element, and
the COMMANDS are executed.
for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done
Equivalent to
(( EXP1 ))
while (( EXP2 )); do
COMMANDS
(( EXP3 ))
done
EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is
omitted, it behaves as if it evaluates to 1.
私は一般的に使用で若干の変異体は、標準ループを実行します。私はよくこの実行コマンドのリモート。しかbashのブレース展開をループするかを数値のために-タイルです。
例:
たいへのアップタイムコマンドがフロントエンドホスト1-5、バックエンドホスト1-3:
% for host in {frontend{1..5},backend{1..3}}.mycompany.com
do ssh $host "echo -n $host; uptime"
done
私はこのため、表現や内容につきましてはコマンドラインとセミコロンを終了し、ラインの代わりにより可読版です。鍵の利用を考えるブレースできる複数指定値を挿入する文字列(例:前{foo、bar、お}後の結果prefoopost,prebarpost)を数/配列をダブル期間を使用することができa..zます。しかし、ダブル期間構文の新機能bash3.0;以前のバージョンには対応いたしません。
#! /bin/bash
function do_something {
echo value=${1}
}
MAX=4
for (( i=0; i<MAX; i++ )) ; {
do_something ${i}
}
以下に例を示しますことを働きかけることができ古い殻、まだ効率的な大規模数:
Z=$(date) awk 'BEGIN { for ( i=0; i<4; i++ ) { print i,"hello",ENVIRON["Z"]; } }'
も頑張って便利なものが内 awk
: 使い方を教えてくださいシェル変数によるawkプ
だintereasedみbashの"用((...))"ソリューション表記は最高だっPOSIX SH対応することがすべてのunicesまいの利用"expr"と"が"ことになるので"(())の"配列番号"または"i=i+1"となる携帯型の中で様々な貝殻
んーならではのバリエーションすべてのファイルを処理...
のためのファイル*.ログ;いecho"なもの:$ファイル";echo"いもの:$ファイル";これまで
れば処理表のファイルがうまいので、 -execdir オプション ファイル.