1. 程式人生 > >shell指令碼查詢MYSQL資料庫並進行相應處理

shell指令碼查詢MYSQL資料庫並進行相應處理

實際應用中用到利用shell指令碼執行一系列與mysql表中資料相關的操作,因此需要將mysql表中資料作為shell指令碼引數。shell指令碼如下:

hostname=ipaddress
port="3306"
username="abcd"
password="123456"

select_sql="select distinct a,':',b,':',c,';' from a.bc where c='$1'"

#此處採用awk命令去除了標題顯示,也可以用${result##*str}方式去除,str為欄位最後一個字母
result=`mysql  -h${hostname} -P${port} -u${username} -p${password} -e "${select_sql}" | awk 'NR>1'`
#去除結果字串中的特殊字元

arr=$(echo $result|tr -d '\n','\t',' ')

#採用引數儲存舊的IFS變數,後續會用到

OLD_IFS="$IFS"

#改變IFS變數為查詢中每條記錄的結尾字元

IFS=";"
arr1=($arr)
IFS=$OLD_IFS
for s in ${arr1[@]}
do
        #echo $s
        OLD_IFS="$IFS"
        IFS=":"
        arr2=($s)

        IFS=$OLD_IFS

#此處即可採用下標進行選取每個欄位並進行賦值了。

        echo ${arr2[1]}

done

這個指令碼花了快一天才搞定。。。自己水平較low..。。。僅供大家參考。不對之處或有簡單方法大家互相交流下。。