0
我在FreeBSD11上。我的系統上有一個或多個zfs池。我想一個腳本來檢查池狀態和更新數據庫,我的代碼是:Shell腳本來更新sqlite數據庫
pool=$(/sbin/zpool status | grep pool |awk '{print $2}')
for i in $pool
do
status=$(/sbin/zpool status ${i} | egrep -i '(ONLINE|DEGRADED|FAULTED|OFFLINE|UNAVAIL|REMOVED|FAIL|DESTROYED|corrupt|cannot|unrecover)')
sqlite3 <address>/my.db <<EOS
update myTable set status = $status where name = ${i};
EOS
echo $status
done
此代碼有錯誤,並且不更新我的數據庫。你能幫我弄清楚這個錯誤嗎?
感謝您的回覆,其實我搜索關於shell腳本源碼,發現在計算器代碼。現在我用你的答案回覆代碼,它有錯誤'語法錯誤:文件意外結束(期待「完成」)'。我在代碼的最後放置了'done'。 –
用[shellcheck](http://shellcheck.net)檢查你的代碼 – codeforester
這是我的正確代碼:'#!/ bin/sh pool = $(/ sbin/zpool status | grep pool | awk'{print $ 2 } ') 因爲我在$池 做 狀態= $(/ sbin目錄/的zpool status $ {I} | grep的狀態| awk的 '{打印$ 2}') 回聲' 更新myTble設置狀態= '\' ''$ status''';';'| sqlite3
mydb.db done' –