2017-07-06 15 views
0

スタートを渡そうと私の現在のスクリプト変数を反復処理する方法は?私が使っていた

for x in {07..10} 

に以下、シーケンスが07から始まるので、スクリプトの終了変数は

for x in $(seq $1 $2) 

を使用して、および07は、ファイル名です私が読んでみたいのは、シーケンスを使うときに起こるように、変数を7に変更することはできません。私はbashで多くの経験を持っていないので、あなたは正しい方向に私を指してくれますか?

+0

リンクのおかげで、私はそれが私の質問に関係していると思います – Sushant

答えて

0

使用printfしたい番号の形式を取得するには:あまりにも変数と

$ for ((x=7; x<=10; x++)); do str=$(printf "%02d" "$x"); echo filename${str}.txt; done 
filename07.txt 
filename08.txt 
filename09.txt 
filename10.txt 

ワークス:

for ((x=7; x<=10; x++)); do 
    str=$(printf "%02d" "$x") 
    echo filename${str}.txt 
done 

結果は次のようになり

$ start="07" 
$ end="10" 
$ for ((x=$start; x<=$end; x++)); do str=$(printf "%02d" "$x"); echo filename${str}.txt; done 
filename07.txt 
filename08.txt 
filename09.txt 
filename10.txt 
+1

'printf -v str"%02d "" $ x "'を使ってフォークを保存します。 – chepner

+0

私は食器洗い機を持っているので、ここでは余分なフォークを使用しても構いません。 – Jack

+0

あなた自身のコードではうんざりしているのは容認できますが、OPがソリューションを少し効率的にしたくないという兆候がない場合は、おそらくループ内の不要なオーバーヘッドを避けるために最善を尽くすべきです。 – tripleee

関連する問題