我正在使用bash腳本將數據庫轉儲到要通過FTP上傳的文件。它將通過cron作業啓動,並且sql server不是本地主機。mysql在BASH腳本中應返回1時返回0
我有腳本工作,但我遇到了錯誤檢查的路障。如果腳本無法連接到sql服務器(萬一它發生故障),我希望它停止並將任何問題輸出到錯誤日誌中。輸出到錯誤日誌工作正常,但腳本仍然運行並創建一個空白文件。我正在嘗試使用$?檢查mysql連接是否失敗,甚至當我使用的是關閉的測試服務器時,返回的是0而不是1.我在牆上打了一個洞,我抨擊我的頭,我在做什麼錯誤?
如果之前已經詢問過這個問題,請指出正確的方向,但是當我搜索時我找不到任何答案。在bash腳本的
內容:
{
mysql -h $HOST -u $USERNAME -p$PASSWORD < dump.sql | sed "s/\t/\",\"/g;s/^/\"/;s/$/\"/" > test.csv
} 2>error.log
if [ $? -ne 0 ]; then { echo "SQL Server connection failed. Aborting" ; exit 1; } fi
'$?'捕獲sed的返回值我猜,不是mysql,看這裏:http://stackoverflow.com/questions/1221833/bash-pipe-output-and-capture-exit-status –
或你可以做'mysql ... < dump.sql > test.csv 2> err; mySqlStat = $? ; sed'....'test.csv'祝好運。 – shellter