天天看點

<linux shell 攻略> 庖丁解牛 mysql資料庫腳本管理系統

操作界面

<linux shell 攻略> 庖丁解牛 mysql資料庫腳本管理系統

這個小系統一共包含4個腳本

sh

功能

備注

onekey.sh

主程式,調用其他程式,對外提供功能

menu.sh

勾畫菜單

function.sh

提供操作資料庫接口

valid.sh

操作mysql資料庫,驗證資料

menu.sh 

畫字元菜單

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<code>#!/bin/bash</code>

<code>function</code> <code>print_main_menu(){</code>

<code>cat</code> <code>&lt;&lt;eof</code>

<code>#######################################</code>

<code>#    1)建立資料庫                  #</code>

<code>#    2)導入電商端資料              #</code>

<code>#    3)建立電商端資料庫并導入資料  #</code>

<code>#    4)驗證電商端資料資料有效性    #</code>

<code>#    5)删除資料庫                  #</code>

<code>#    6)列印菜單                    #</code>

<code>#    7)退出                        #</code>

<code>eof</code>

<code>}</code>

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

<code>#作者:</code>

<code>#版本:v1.0</code>

<code>#用途:建立mysql 資料庫和資料庫表</code>

<code>#建立資料庫 4個必須參數(user,password,database_name,charset)</code>

<code>function</code> <code>create_database_01(){</code>

<code>    </code><code>user=</code><code>"$1"</code>

<code>    </code><code>password=</code><code>"$2"</code>

<code>    </code><code>ip=</code><code>"$3"</code>

<code>    </code><code>datebase_name=</code><code>"$4"</code>

<code>    </code><code>database_charset=</code><code>"utf8"</code>

<code>    </code><code>mysql -h $ip -u $user -p$password &lt;&lt;eof 2&gt;</code><code>/dev/null</code>

<code>    </code><code>create database $datebase_name charset=$database_charset;</code>

<code>    </code><code>if</code> <code>[[ $? -</code><code>eq</code> <code>0 ]]; </code><code>then</code>

<code>            </code><code>echo</code> <code>"資料庫"</code><code>$datebase_name</code><code>"建立成功"</code>

<code>        </code><code>else</code>

<code>            </code><code>echo</code> <code>"資料庫"</code><code>$datebase_name</code><code>"建立失敗"</code>

<code>            </code><code>exit</code> <code>1;</code>

<code>    </code><code>fi</code>

<code>#掃描地區目錄中資料庫檔案夾,按順序執行</code>

<code>function</code> <code>init_database_02(){</code>

<code>    </code><code>areacode=</code><code>"$5"</code>

<code>    </code><code>while</code> <code>read</code> <code>line; </code>

<code>    </code><code>do</code>

<code>        </code><code>mysql -h $ip -u $user -p$password $datebase_name &lt;$line 2&gt;</code><code>/dev/null</code>

<code>    </code><code>done</code> <code>&lt; &lt;(</code><code>ls</code> <code>./$areacode/*.sql -rt)</code>

<code>            </code><code>echo</code> <code>"往"</code><code>$datebase_name</code><code>"導入資料成功"</code>

<code>            </code><code>echo</code> <code>"往"</code><code>$datebase_name</code><code>"導入資料失敗"</code>

<code>#删除資料庫</code>

<code>function</code> <code>drop_database_02(){</code>

<code>    </code><code>drop database $datebase_name;</code>

<code>            </code><code>echo</code> <code>"資料庫"</code><code>$datebase_name</code><code>"删除成功"</code>

<code>            </code><code>echo</code> <code>"資料庫"</code><code>$datebase_name</code><code>"删除失敗"</code>

<code>#讀取參數</code>

<code>function</code> <code>readstdin(){</code>

<code>            </code><code>read</code> <code>-p </code><code>"please input ip[localhost]:"</code> <code>ip</code>

<code>            </code><code>if</code> <code>[[ -z </code><code>"$ip"</code> <code>]]; </code><code>then</code>

<code>                </code><code>ip=</code><code>"localhost"</code>

<code>            </code><code>fi</code>

<code>            </code><code>read</code> <code>-p </code><code>"please input db login user[root]:"</code> <code>username</code>

<code>            </code><code>if</code> <code>[[ -z </code><code>"$username"</code> <code>]]; </code><code>then</code>

<code>                </code><code>username=</code><code>"root"</code>

<code>            </code><code>read</code> <code>-p </code><code>"please input db login password:"</code> <code>password</code>

<code>            </code><code>read</code> <code>-p </code><code>"please input db name:"</code> <code>dbname    </code>

valida.sh

<code>dbname=</code><code>"test_jd_dspt_wh"</code>

<code>nsrsbh=</code><code>"420112568371402"</code>

<code>mysql=</code><code>"mysql -h 192.168.15.9 -u root -p123456 $dbname"</code>

<code>#$mysql "use $dbname"</code>

<code>sql="</code><code>select</code> <code>count(nsrsbh) into @v01 from dj_nsrxx </code>

<code>where nsrsbh=$nsrsbh;</code>

<code>select</code> <code>if</code><code>(@v01&lt;=0,</code><code>'納稅人識别号在dj_nsrxx表中沒有記錄'</code><code>,</code>

<code>                  </code><code>'驗證01[納稅人識别号在dj_nsrxx表中存在]驗證通過!!!'</code><code>);</code>

<code>select</code> <code>dsptbm into @dsptbm  from dj_nsrxx where nsrsbh=$nsrsbh;</code>

<code>select</code> <code>pt.dsptmc into @dsptmc from dj_dzswpt_kz kz ,dj_dzswpt pt </code>

<code>where  kz.</code><code>id</code> <code>=pt.</code><code>id</code>  <code>and kz.dsptbm=@dsptbm;</code>

<code>select</code> <code>if</code><code>(@dsptmc is not null,concat(</code><code>'驗證02通過納稅人電商平台資訊:'</code><code>,@dsptmc),</code><code>'驗證02[納稅人電商平台資訊為空]驗證不通過!!!'</code><code>);</code>

<code>select</code> <code>hy_dm into @vhy  from dj_nsrxx where nsrsbh=@vnsrsbh;</code>

<code>select</code> <code>kpzt into @vkpzt  from dj_nsrxx where nsrsbh=@vnsrsbh;</code>

<code>select</code> <code>nsrzt_dm into @vnsrzt from dj_nsrxx where nsrsbh=@vnsrsbh;</code>

<code>select</code> <code>if</code><code>(@vhy!=5200,</code><code>'納稅人行業代碼不等于5200'</code><code>,</code><code>'驗證03[納稅人行業代碼等于5200]驗證通過!!!'</code><code>);</code>

<code>select</code> <code>if</code><code>(@vnsrzt!=21,</code><code>'納稅人狀态代碼不等于21'</code><code>,</code><code>'驗證04[納稅人狀态代碼等于21]驗證通過!!!'</code><code>);</code>

<code>select</code> <code>if</code><code>(@vkpzt!=1,</code><code>'納稅人開票狀态不等于1'</code><code>,</code><code>'驗證05[納稅人開票狀态等于1]驗證通過!!!'</code><code>);</code>

<code>select count(1) into @nsrztcount from fp_nsrzt where swjg_dm = (select sz_swjg_dm from dj_nsrxx where nsrsbh = @vnsrsbh) and nsrzt_dm = @vnsrzt;</code>

<code>select</code> <code>if</code><code>(@nsrztcount&lt;=0,</code><code>'納稅人稅務機關[sz_swjg_dm]不存在或狀态與納稅人資訊不比對'</code><code>,</code><code>'驗證06[納稅人所在稅務機關sz_swjg_dm有效]驗證通過!!!'</code><code>);</code>

<code>select</code> <code>'上述所有驗證均通過,可保證訂單可以下發成功'</code><code>;</code>

<code>select</code> <code>count(1) into @vjccount2 from fp_pz pz, fp_nsrjc jc where jc.nsrsbh=pz.nsrsbh and pz.fpzl_dm=jc.fpzl_dm and pz.nsrsbh=@vnsrsbh;</code>

<code>select</code> <code>if</code><code>(@vjccount2&lt;=0,</code><code>'納稅人票種或結存為空'</code><code>,</code><code>'驗證07[納稅人開票結存]驗證通過!!!'</code><code>);</code>

<code>select</code> <code>count(1) into @dymbcount from dm_dymb mb where swjg_dm=(</code><code>select</code> <code>sz_swjg_dm from dj_nsrxx where nsrsbh=@vnsrsbh);</code>

<code>select</code> <code>if</code><code>(@dymbcount&lt;4,</code><code>'所在稅務機關列印模闆數目不足4個'</code><code>,</code><code>'驗證08[列印模闆]驗證通過,不保證模闆路徑有效!!!'</code><code>);</code>

<code>select</code> <code>concat(</code><code>'____'</code><code>,pyfileurl) as </code><code>'列印模闆如下'</code> <code>from dm_dymb mb where swjg_dm=(</code><code>select</code> <code>sz_swjg_dm from dj_nsrxx where nsrsbh=@vnsrsbh);</code>

<code>select</code> <code>qzid into @vqzid from fp_qzcx where nsrsbh=@vnsrsbh;</code>

<code>select</code> <code>if</code><code>(@vqzid is null,</code><code>'納稅人簽章資訊不存在'</code><code>,</code><code>'驗證09[簽章資訊]驗證通過!!!'</code><code>);</code>

<code>";</code>

<code>$mysql -n -l -s -e </code><code>"$sql"</code>