2012年4月11日 星期三

(Shell Script) Dynamic Dialog

剛好此次需動態從網頁上抓取資訊後

更新Dialog的資訊

所以就對Dynamic Dialog (TUI) 做個 筆記



/usr/bin/wget -q http://sourceforge.net/projects/ezilla-nchc/files/VMImage/ \
              -O /tmp/vmimages
#從網頁上下載特定資訊

VMImagesNum=`/bin/cat /tmp/vmimages | grep http://sourceforge.net/projects/ezilla-nchc/files/VMImage/ | awk -F "=" '{print $2}' | awk -F "/" '{print $8}' | wc -l`
#抓取所需變數
VMimagesName=(`/bin/cat /tmp/vmimages | grep http://sourceforge.net/projects/ezilla-nchc/files/VMImage/ | awk -F "=" '{print $2}' | awk -F "/" '{print $8}' ` )
#抓取所需變數
VMimagesHyperLink=(`/bin/cat /tmp/vmimages | grep http://sourceforge.net/projects/ezilla-nchc/files/VMImage/ | awk -F "=" '{print $2}'`)
#抓取所需變數

for (( i=0 ; i<$VMImagesNum ; i=i+1 ))
do
        VMimagesName_2[$i*2]=${VMimagesName[$i]%.tar.gz}
        VMimagesName_2[(($i*2)+1)]="$i"

done
#所需Array 生成 由於Dialog 必須為如下所示
#options=(1 "Option 1"
#         2 "Option 2"
#         3 "Option 3"
#         4 "Option 4") #此為一維array  
# 所以必須將需顯示於Dialog的Menu上的array 重新製作!


cmd=(dialog --keep-tite --menu "Select options:" 22 76 16)
choices=$("${cmd[@]}" "${VMimagesName_2[@]}" 2>&1 >/dev/tty)

echo choices=$choices 

echo ${VMimagesName_2[*]}
echo ${VMimagesName_2[0]}
echo ${VMimagesName_2[1]}
echo ${VMimagesName_2[2]}
echo ${VMimagesName_2[3]}



(Shell Script) 抓取 資料 轉存為 array

Shell Script 筆記


array=( `/bin/cat /tmp/vmimages | grep http://sourceforge.net/projects/ezilla-nchc/files/VMImage/ | awk -F "=" '{print $2}' | awk -F "/" '{print $8}' `)

透過( ) 將內容 存成array
echo ${array[0]}
echo ${array[1]}
echo ${array[2]}
....
echo ${array[*]}

原先
/bin/cat /tmp/vmimages | grep http://sourceforge.net/projects/ezilla-nchc/files/VMImage/ | awk -F "="  \ '{print $2}' | awk -F "/" '{print $8}'

出來的資訊為一行一行
可用 ( ) 將資料包起來 轉成array 存值