Fortran 90 で記述されたシミュレーション プログラムを実行する bash スクリプトがあり、すべての出力がファイルにリダイレクトされます。プログラムが問題なく終了したら、success パラメータを設定します。コードは次のようになります。
#!/ビン/バッシュ ... echo -n "プログラムを実行しています..." ./sim_program >& ファイル && success="true" [ $success ]; それから エコー「OK」 そうしないと エコー「OKではありません」 フィ ...
画面への出力は、「Running program... OK」または「Running program... NOT OK」のいずれかになります。場合によっては、シミュレーション プログラムが浮動小数点例外またはセグメンテーション エラーでクラッシュし、対応するシグナルが送信されます (SIGSEGV / SIGFPE)。出力は次のようになります。
:~>execute_script 実行中のプログラム.../path/to/script: 232行目: 15350 Floating Point Exception ./sim_program >& file && success="true" 良くないですよ
SIGFPE または SIGSEGV によるエラー出力を抑制するにはどうすればよいですか?
:~>execute_script プログラムを実行しています... OKではありません
そのようなエラーがある場合でも?たとえば、トラップの使用を検討しました
トラップ "" SIGSEGV SIGFPE ./sim_program >& ファイル && success="true" トラップ SIGSEGB SIGFPE
しかし、私はまだ次のようなものを取得します
:~>execute_script プログラムを実行中... 浮動小数点例外 良くないですよ
どんな助けでも大歓迎です!