7

コマンドが失敗したときに中止し、問題のある行番号を表示するシェル スクリプトを作成しようとしています。

set -e
trap 'echo "$0 FAILED at line ${LINENO}"' ERR

トラップ行は、Ubuntu のデフォルトのシェル スクリプト インタープリターであるダッシュでは機能しないことが判明しました。シバン行を#!/bin/bashこれに変更すると機能しますが、では機能しません#!/bin/sh。bash の存在に依存せずにこれを機能させる方法はありますか?

ちなみに、ダッシュから得られるエラーは次のとおりです。

trap: ERR: bad trap
4

2 に答える 2