準備工作,創建一個abc的數據庫,並創建一個表結構如下的info表
MariaDB [abc]> desc info;
±------±---------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±---------±-----±----±--------±------+
| name | char(20) | YES | | NULL | |
| sex | char(4) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| zw | char(10) | YES | | NULL | |
±------±---------±-----±----±--------±------+
4 rows in set (0.00 sec)
此腳本有待改進,可以將數據庫以及表都定義爲用戶交互(read)的類型,這樣可以大大提升用戶使用此腳本的方便性,並且可以使此腳本更加具有可用性
#!/bin/bash
while true
do
echo
echo
echo " A 添加數據 "
echo " B 查詢數據 "
echo " Q 退出程序 "
read -p "請輸入操作序號:" num
echo
echo
if [ -z $num ]
then
echo "您輸入的序號爲空,請重新輸入"
else
while true
do
if [ $num = "A" ]
then
while true
do
read -p "輸入name字段的值:" name1
read -p "輸入sex字段的值:" sex1
read -p "輸入age字段的值:" age1
read -p "輸入zw字段的值:" zw1
if [ -z $name1 ] || [ -z $sex1 ] || [ -z $age1 ] || [ -z $zx1 ]
then
echo "您輸入的字段中有空值,請重新輸入!"
else
mysql -u root -p123.com -e "insert into abc.info values ('$name1','$sex1',$age1,'$zw1')"
break
fi
done
break
elif [ $num = "B" ]
then
while true
do
read -p "請輸入查詢關鍵字:" name1
if [ -z $name1 ]
then
echo "輸入的關鍵字爲空,請重新輸入關鍵字!"
else
mysql -u root -p123.com -e 'select name from abc.info' | grep "^$name1"
if [ $? = "0" ]
then
mysql -u root -p123.com -e "select * from abc.info where name='$name1'"
break
else
echo "該關鍵字查詢結果爲空,請重新輸入!"
echo "可以提供以下選擇"
mysql -u root -p123.com -e 'select name from abc.info'
fi
fi
done
break
elif [ $num = "Q" ]
then
exit 0
else
echo "您輸入的值未在選擇範圍中,請重新輸入"
break
fi
done
fi
done