我有以下的bash腳本行Linux下:如何在bash腳本中循環?
...
mkdir max15
mkdir max14
mkdir max13
mkdir max12
mkdir max11
mkdir max10
...
是怎樣的語法將它們放在一個循環,這樣我就不用寫數字(15,14 ...)?
我有以下的bash腳本行Linux下:如何在bash腳本中循環?
...
mkdir max15
mkdir max14
mkdir max13
mkdir max12
mkdir max11
mkdir max10
...
是怎樣的語法將它們放在一個循環,這樣我就不用寫數字(15,14 ...)?
使用for-loop
for a in `seq 10 15`; do mkdir max${a}; done
seq
將產生數從10
到15
。
編輯:多年以來我就習慣了這種結構。但是,當我觀察其他答案時,確實如此,{START..STOP}
好得多。現在我必須習慣以更好的方式創建目錄:mkdir max{10..15}
。
for i in {1..15} ; do
mkdir max$i
done
如果要將值1..9填充爲0,則在bash4中使用{00..15} – pepoluan 2011-03-08 10:48:36
用bash,不需要使用外部命令如seq
來生成數字。
for i in {15..10}
do
mkdir "max${i}"
done
或者乾脆
mkdir max{01..15} #from 1 to 15
mkdir max{10..15} #from 10 to 15
說,如果你的號碼是動態生成的,你可以使用C風格的for循環
start=10
end=15
for((i=$start;i<=$end;i++))
do
mkdir "max${i}"
done
沒有循環需要完成這個任務:
mkdir max{15..10} max0{9..0}
...但如果你需要一個循環常量構作,您可以使用一個:
for i in $(seq [ <start> [ <step> ]] <stop>) ; do
# you can use $i here
done
或
for i in {<start>..<stop>} ; do
# you can use $i here
done
或
for ((i=<start> ; i < stop ; i++)) ; do
# you can use $i here
done
或
seq [ <start> [ <step> ]] <stop> | while read $i ; do
# you can use $i here
done
請注意,最後一個不會保留的價值$ i,因爲|
啓動一個子shell
請注意,只適用於bash。 – enzotib 2010-10-24 10:37:36