用 Shell 指令碼訪問 MySQL 資料庫

2021-06-16 23:14:56 字數 1380 閱讀 9466

下午寫了乙個簡單的 bash 指令碼,用來測試程式,輸入乙個測試用例檔案,輸出沒有通過測試的用例和結果,然後把結果儲存到資料庫裡。如何在 bash 指令碼裡直接訪問資料庫呢?既然在 shell 裡可以直接用 mysql 命令運算元據庫,那麼在 shell script 裡也應該可以通過呼叫 mysql 來運算元據庫。比如用下面的 bash shell 指令碼查詢資料庫:

#!/bin/bash

mysql -uvpsee -ppassword test << eofmysql

select * from test_mark;

eofmysql

如果需要複雜的資料庫操作的話不建議用 shell 指令碼,用 perl/python/php 運算元據庫很方便,分別通過 perl dbi/python mysqldb/php mysql module 介面來運算元據庫。這裡再給出這三種不同語言連線、查詢資料庫的簡單例子(為了簡單和減少篇幅刪除一些不必要的**):

#!/usr/bin/perl

use dbi;

$db = dbi->connect('dbi:mysql:test', 'vpsee', 'password');

$query = "select * from test_mark";

$cursor = $db->prepare($query);

$cursor->execute;

while (@row = $cursor->fetchrow_array)

#!/usr/bin/python

import mysqldb

db = mysqldb.connect("localhost", "vpsee", "password", "test")

cursor = db.cursor()

query = "select * from test_mark"

cursor.execute(query)

while (1):

row = cursor.fetchone()

if row == none:

break

print "%s, %s, %s, %s" % (row[0], row[1], row[2], row[3])

#!/usr/bin/php

?php

$db = mysql_connect("localhost", "vpsee", "password");

mysql_select_db("test");

$result = mysql_query("select * from test_mark");

while ($row = mysql_fetch_array($result))

?>

本文出自:

shell指令碼 訪問shell指令碼的引數

所謂的位置引數 positional parameters 指的也就是shell指令碼的命令列引數 command line arguments 在shell函式裡,它們同時也可以是函式的引數。各引數都由整數來命名。由於歷史原因,當它超過9時,就應該用大括號把數字框起來 echo first arg...

訪問Shell指令碼引數

所謂的位置引數 positional parameters 指的也就是shell指令碼的命令列引數 command line arguments 在shell函式裡,它們同事也可以是函式的引數。各引數都由整數來命名。基於歷史的原因,當它超過9,就應該用大括號把數字框起來 echo first arg...

用shell指令碼監控系統

簡單的用shell指令碼寫乙個 監控 程式作為思路,大致為 實時檢測系統的記憶體使用率,如果大於閾值那麼報警 如果有條件可以使用簡訊介面或者實在不行可以使用郵件通知 並記錄到日誌檔案裡,如果小於閾值那麼正常顯示。bin bash check mem 100 free grep i mem awk b...