今天來講講 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 ,可以叫我呆翰,是國立臺中科技大學的延畢生 與 創科資訊的時習生。