shell指令碼查詢MYSQL資料庫並進行相應處理
阿新 • • 發佈:2019-02-09
實際應用中用到利用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變數為查詢中每條記錄的結尾字元
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..。。。僅供大家參考。不對之處或有簡單方法大家互相交流下。。