iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 11
0
自我挑戰組

30 天的 ShellScript 教室解決開發者的困擾系列 第 11

[鐵人賽第11天] 使用 for 迴圈

  • 分享至 

  • xImage
  •  

今天來講講 Shell 或是 ShellScript 裡面的 for 迴圈吧。

ShellScript 裡面的迴圈就是這樣:

for value in val1 val2 val3;
do
    echo $value
done

執行上面的指令,就會出現:

val1
val2
val3

當然除了手動輸入外,也可以透過 Command Substitution 來帶值進來:

for file in `ls *.mp4`;
do
    ffmpeg -i $file ${file}.avi
done

這邊順便介紹一個好用的指令,叫做 seq ,它的功能很簡單:

seq 2 5

然後會輸出以下內容到 stdout :

2
3
4
5

然後把 for 迴圈跟 seq 結合起來,大概會長這樣:

for num in `seq 1 100`;
do
    wget http://example.com/?page=$num
done

這樣就可以簡單了下載 200 頁的資料了呢。

當然你也可以先把清單存成 list.txt ,然後跑一下面的指令:

for item in `cat list.txt`;
do
    rm $item
done

至於你說這東西要寫在哪?隨你開心,直接輸入在 Terminal 或是寫成 Script 都可以啊, Why not?


我是誰?
我是 dd-han ,可以叫我呆翰,是國立臺中科技大學的延畢生 與 創科資訊的時習生。


上一篇
[鐵人賽第10天] 如何撰寫 Shell Script
下一篇
[鐵人賽第12天] 四則運算
系列文
30 天的 ShellScript 教室解決開發者的困擾23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言