介紹
最近覺得使用shell語言,做一些業務需求,是超爽的事情。——shell魅力等着我們來發現啊。
研究案例:插入100萬條記錄以便測試使用,主要是想看看索引的威力。
必要性
原來一有什么服務端腳本運行,我先想到的是我擅長點的php,然后在考慮shell,因為shell用起來怪怪的。但是今天我下狠心要用shell把代碼寫完。 完工之后回頭看看,恩,確實很爽,相當爽。
我覺得我學習shell是非常有必要的啊。
1、可以用shell方便解決很多問題。如,文件定時切割,多個命令一同執行。
2、在寫shell的時候,對linux命令會更加熟悉。對linux系統的了解會更深入。——反正對你學習linux是有幫助的。
3、簡化很多操作,你用C或者php開發的程序,用shell幾句話就能解決了。
以上純屬個人觀點,如有異議,歡迎拍磚。
創建表

可以單獨寫個SQL文件,然后用"mysql -uroot -proot -Dyouku < test.sql"解決。




這樣表格就創建好了。這種方式是很多人用的,但是在命令行每次都打這么多命令,太麻煩了,所以,我想是不是把它放到shell文件里是不是更方便一些。

有的人喜歡把mysql命令放到非PATH文件中,所以我建議把mysql以變量的形式執行。

控制輸入
我想做的更完美一些,能不能我們手動輸入用戶名,密碼和數據庫呢?
這個密碼輸入,我輸入的時候如果旁邊有人看,密碼豈不丟失了,改成隱藏的方式吧


讓代碼更有層次感,首先想到的當然是函數。——函數歸類。
准備100萬條數據

#/bin/bash MYSQL="/usr/bin/mysql" input(){ #輸用戶名 echo "##### Please enter your username [enter=root] #####" read USERNAME if [ "$USENAME" = "" ]; then USERNAME="root" fi #輸密碼 echo "##### Please enter your password [enter=root] #####" stty -echo read PASSWORD if [ "$PASSWORD" = "" ]; then PASSWORD="root" fi stty echo #選擇數據庫 echo "##### Please select your database [enter=youku] #####" DBS="`$MYSQL -u$USERNAME -p$PASSWORD -hlocalhost --batch --skip-column-names -e 'show databases' | sed 's/ /%/g'`" select DB in $DBS; do break done #execute } execute(){ input $MYSQL -u$USERNAME -p$PASSWORD -D$DB < test.sql } insert(){ input INSERT_SQL="INSERT INTO t_user(username,password) VALUES" for i in $(seq 1 1000000) do INSERT_SQL="${INSERT_SQL}""('Chuan Shanjia$i',md5('Chuan shanjia$i'))," done echo ${INSERT_SQL:0:-1} $MYSQL -hlocalhost -u$USERNAME -p$PASSWORD -D$DB -e "${INSERT_SQL:0:-1}" } case "$1" in 'insert') clear insert ;; 'create') clear execute ;; *) echo "Usage:DbTool:insert or create!" ;; esac exit 0
運行方式
總結
大家看到這篇文章,也許會說“什么玩意?這東西都能拿出來現眼。”——呵呵,大家就權當復習基礎知識吧!
如果你想學習一下,shell編程基礎,建議看這篇文章
Shell編程基礎。
推薦
