陣列應用

底下介紹陣列應用的一個簡單範例

[tip]重點語法提醒:
declare -a 變數
變數=(`cat $檔名`)
透過上面的語法,就可很快的用cat 檔案的方法,將檔案內容塞入陣列裡
[/tip]

#!/bin/bash
#說明: 主叫號碼.txt 此檔的內容是一行一個手機號碼,有很多個手機號碼
#使用 `cat 主叫號碼.txt` 方式將內容填入陣列裡
#再用迴圈的方式依序將陣列的內容列出


#假設 /home/ftp/autorun/ 此資料夾底下有很多個 .txt 檔,使用 sed -n '1p' 只列出第1個檔案
fullfile=`find /home/ftp/autorun/*.txt |sed -n '1p'`
#去掉完整的路徑,只取檔案名稱
fileName=$(basename $fullfile )
#檔案名稱 再去掉副檔名 .txt 只取主檔名
callerID=$(basename $fullfile .txt )

#宣告底下變數為陣列
declare -a cellphoneNUM
cellphoneNUM=(`cat $fullfile`)

#列出陣列裡的所有資料
#echo "${cellphoneNUM[*]}"
#計算陣列裡共有幾筆資料
#echo "${#cellphoneNUM[*]}"

#底下開始使用陣列帶出call file
for item in ${cellphoneNUM[*]}
do
 #依序列出陣列內容,你可在此再加一些指令動作
 echo $item
done

在以上的基礎我們加些功能

#!/bin/bash
fullfile=`find /home/ftp/autorun/*.txt |sed -n '1p'`
callerID=$(basename $fullfile .txt )
#宣告底下變數為陣列
declare -a cellphoneNUM
cellphoneNUM=(`cat $fullfile`)


#底下開始使用陣列帶出call file 於 /tmp/t 底下
for item in ${cellphoneNUM[*]}
do
 echo "Channel: SIP/router/prefix886$item" > /tmp/t/test$item.call
 echo "CallerID:\"$callerID\" <$callerID> " >> /tmp/t/test$item.call
 echo 'Context: IVR1' >> /tmp/t/test$item.call
 echo 'Extension: s' >> /tmp/t/test$item.call
 echo 'Priority: 1' >> /tmp/t/test$item.call
done

分類: bash。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *