亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 如何根據(jù)讀入的變量長度做循環(huán)? [打印本頁]

作者: oniziga    時(shí)間: 2012-06-15 17:41
標(biāo)題: 如何根據(jù)讀入的變量長度做循環(huán)?
本帖最后由 oniziga 于 2012-06-18 11:07 編輯

請教一個(gè)問題:

讀入變量
read start

如果start是1,則從1開始循環(huán),可以做1-9的循環(huán),比如打印D1-D9;
如果start是01,則從01開始循環(huán),可以做01-99的循環(huán),比如打印D01-99;

如果start是001,則從001開始循環(huán),可以做001-999的循環(huán),比如打印D001-D999.

依次類推。。。

有沒有比較優(yōu)雅的實(shí)現(xiàn)方法?

+++++++++++++++++++++++++++++++++++++++++++++++++++++

非常感謝下面回帖的各位,方法夠優(yōu)雅,可惜我都看不懂,哈哈

不好意思,我沒有把需求說的明白,重新說一下:

實(shí)現(xiàn)一個(gè)函數(shù),有兩個(gè)變量,第一個(gè)變量$1是一個(gè)字符串,第二個(gè)變量$2是整數(shù);

要求該函數(shù),對字符串$1實(shí)現(xiàn)循環(huán)$2次數(shù)。比如第一個(gè)參數(shù)是“D001”,第二個(gè)參數(shù)是5,則打印出D001-D005;
如果第一個(gè)參數(shù)是D005,第二個(gè)參數(shù)是10,則打印D005-D014.

反正是從$1的最后一位開始遞增。
難點(diǎn)應(yīng)該是循環(huán)次數(shù)不一定,如果D001-D005種情況好說,但是D005-D014設(shè)計(jì)到進(jìn)位了,如果要進(jìn)多個(gè)位可能是不是更麻煩?比如D0001-D0555.


作者: 英語盲學(xué)linux    時(shí)間: 2012-06-15 17:47
  1. 寫個(gè)end變量:
  2. end=$(echo "$start"|sed s/./9/g)
復(fù)制代碼

作者: jils2013    時(shí)間: 2012-06-15 17:48
awk '{for(i=1;i<10^length("'"$start"'");i++)print i}'

算得上優(yōu)雅不
作者: hbmhalley    時(shí)間: 2012-06-15 18:25
  1. eval echo {$start..${start//?/9}}
復(fù)制代碼

作者: jiejie455    時(shí)間: 2012-06-15 21:21
回復(fù) 4# hbmhalley


    夠優(yōu)雅!
作者: yinyuemi    時(shí)間: 2012-06-16 00:05
seq -f %0$(expr length $start).f ${start//*/9}
作者: oniziga    時(shí)間: 2012-06-18 11:08
頂頂))
作者: sandao381    時(shí)間: 2012-06-18 11:39
回復(fù) 4# hbmhalley


    牛叉哄哄呀
作者: yinyuemi    時(shí)間: 2012-06-18 14:46
回復(fù) 1# oniziga


    用seq應(yīng)該可以,它既可以設(shè)置格式,也可以設(shè)定遞增值,比如
  1. seq -f "D%03.f" 5 2 $((10+5))
  2. D005
  3. D007
  4. D009
  5. D011
  6. D013
  7. D015

復(fù)制代碼

作者: oniziga    時(shí)間: 2012-06-26 09:51
yinyuemi 發(fā)表于 2012-06-18 14:46
回復(fù) 1# oniziga


謝謝,是我想要的。
作者: dragon23452345    時(shí)間: 2012-06-26 16:38
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2