迴圈應用

有檔名如下,要按檔名順序依次copy進mp3隨身碟撥放器裡面去

0160.0160 第二届01.wav
0161.0161 第二届02.wav
0162.0162 第二届03.wav
0163.0163 第二届04.wav
0164.0164 第二届05.wav
…..
…..
0181 第三届09.wav
0182 第三届09.wav
….
0250 第三届09.wav

以上檔名中間有空隔,數字前面有個0

程式所要得到的結果是就可以從0160*.wav 一直copy到 0250*.wav 按檔名順序依次copy進mp3撥放器裡去。
一般的copy指令未必能按檔名順序依次copy進隨身碟,故要特地寫此腳本。

#!/bin/bash
file=/home/user/temp
dst=/tmp
 
for (( i=160; i<=251; i=i+1 ))
do
cp $file/0$i*.wav $dst
done
 
#for ((index=0; index<10; index++)); do
#   echo "Hello, this is : $index"
#done

語法說明:上面for的迴圈是以一種類似 C 語言的那種運作方式,

上面那個迴圏還有另一種更精簡的寫法

#!/bin/bash
file=/home/user/temp
dst=/tmp
 
for i in $(seq 160 251)
do
cp $file/0$i*.wav $dst
done

此範例的重點在 $(seq ..) 那個位置!那個 seq 是連續 (sequence) 的縮寫之意!代表後面接的兩個數值是一直連續的! 如此一來,就能夠輕鬆的將連續數字帶入程式中囉!

無限迴圈寫法

while (true)
do
...
done
for ((;;)){
...
}
本篇發表於 bash。將永久鏈結加入書籤。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *