0
私はFreeBSD11です。私のシステムには1つ以上のzfsプールがあります。私は、スクリプトは、プールの状態を確認し、データベースを更新したい、私のコードは次のとおりです。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
このコードは、エラーを持っている、と私のデータベースを更新しません。間違いを理解する手助けはできますか?
は、実際に私はシェルスクリプトでのsqliteについて検索しstackoverflowの中でそのコードを見つけ、ご返信をお願い致します。今私はあなたの答えでコードを再現する、それはエラー 'のSyntaxエラーがあります:予期しないファイルの終わり(期待して"完了 ")'、。私はコードの最後に 'done'を置いた。 –
コードを確認する[shellcheck](http://shellcheck.net) – codeforester
これは私の正しいコードです: '#!/ bin/sh プール= $(/ sbin/zpool status | grep pool | awk '{print $ 2 } '| grepの状態| I $プール に 状態= $(/ sbinに/ zpoolのステータス$ {I}を行うための) awkは '{} $ 2印刷') エコー' myTbleは= '\' のステータスを設定し、更新'' $ status '' \ ''; '| sqlite3
mydb.db done' –