2017-03-29 16 views
-1

Bashシェルが終了しません - コードの下にありますが、エラーは発生しません。 私はCtrlキーを押したときに+ D私はすべてのエラーでスクリプトを終了するset -eを試してみて、適切な条件bashシェル - if-elif条件では終了しません

#!/bin/bash 

read un < $HOME/un.txt 

sqlplus $un @report.sql > Package_migration_report.`date -d "1 day ago" +"%b_%d_%Y"`.xls 

mail_to="xxxx" 

count=$(grep -c "no rows selected" $HOME/Package_migration_report.`date -d "1 day ago" +"%b_%d_%Y"`.xls) 

error=$(grep -c ERROR $HOME/Package_migration_report.`date -d "1 day ago" +"%b_%d_%Y"`.xls) 

if [ "$error" -gt 0 ] 

then 

    echo -e "Error occurred\n\nNOTE: In case of Schema/password change is done to HARP database, the private variables in the script needs modifications - SCM team Will take appropriate action" |mailx -s "Package Migration Report for `date -d "1 day ago" +"%b_%d_%Y"` " $mail_to 

elif [ "$count" -gt 0 ] 

then 

    echo -e "Hi All\n\nNo Packages where migrated for `date -d "1 day ago" +"%b_%d_%Y"` \n\n\nThanks & Regards \nSCM team \n\n\n" |mailx -s "Package Migration Report for `date -d "1 day ago" +"%b_%d_%Y"` " $mail_to 

else 

    cat mail_content_2 | mailx -s "Package Migration Report for `date -d "1 day ago" +"%b_%d_%Y"` " -a $HOME/Package_migration_report.`date -d "1 day ago" +"%b_%d_%Y"`.xls $mail_to 

fi 

exit 0 
+1

いくつかのコマンドを修正するには

されますstdinから読むそれが何であるかを推測するのではなく、 'bash -x yourscript'を使って、各コマンドが記録された状態でスクリプトを実行してください。 –

+2

ところで、http://shellcheck.net/が自動的に検出する重要な一連のバグがあります(引用漏れが多い)。そのようにするとすぐに問題を解決することはできませんが、見つかったものを見つけて解決することを検討する必要があります。 –

+1

また、[echo'のPOSIX仕様](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html) - 特に 'printf '%b \ nを推奨するAPPLICATION USAGEセクションを参照してください。 '' echo -e'の代わりに ''エスケープシーケンスを含む文字列 "(これは実際にPOSIXに違反し、' xpg_echo'と 'posix'フラグの両方が有効な時のサポートを無効にします)。 –

答えて

-1

正しく出力を得るが、終了メカニズム

で私を助けてください、その不明確あなたの問題が何でありますか。 ..

+0

'set -e'は[有害とみなされます](http://mywiki.wooledge.org/BashFAQ/105) - stdinをブロックするプログラムを解決するために何もしません。 –

0

データベースのユーザー名/パスワードで問題が発生しました。間違っていたため、コントロールはSQLから復帰せず、パスワードの再入力を待っていました。この私が、パスワードが間違っている場合、それはすぐにSQLを終了します(それはPWDのためのプロンプトを再ません)一度ログオンオプション(-lフラグ)以下で使用している:)

sqlplus -l $un @report.sql> Package_migration_report.`date -d "1 day ago" +"%b_%d_%Y"`.xls 
+1

これは 'if' /' elif'条件(これはタイトルを渡して、ここを通ってそれを見つける人の集合です)に関係する問題を持つ他の誰かを助けるような解決策ではありません。将来(MCVE(http://stackoverflow.com/help/mcve)を構築することで、「if」が問題とは関係ないことを明らかにしていたはずです)その答えを解決する実際の問題に焦点を当てるように質問を編集するか(他の人にも役立つでしょう)、またはそれを完全に削除することです。 –

関連する問題