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' –