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
いくつかのコマンドを修正するには
されますstdinから読むそれが何であるかを推測するのではなく、 'bash -x yourscript'を使って、各コマンドが記録された状態でスクリプトを実行してください。 –
ところで、http://shellcheck.net/が自動的に検出する重要な一連のバグがあります(引用漏れが多い)。そのようにするとすぐに問題を解決することはできませんが、見つかったものを見つけて解決することを検討する必要があります。 –
また、[echo'のPOSIX仕様](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html) - 特に 'printf '%b \ nを推奨するAPPLICATION USAGEセクションを参照してください。 '' echo -e'の代わりに ''エスケープシーケンスを含む文字列 "(これは実際にPOSIXに違反し、' xpg_echo'と 'posix'フラグの両方が有効な時のサポートを無効にします)。 –