コマンドが失敗したときに中止し、問題のある行番号を表示するシェル スクリプトを作成しようとしています。
set -e
trap 'echo "$0 FAILED at line ${LINENO}"' ERR
トラップ行は、Ubuntu のデフォルトのシェル スクリプト インタープリターであるダッシュでは機能しないことが判明しました。シバン行を#!/bin/bash
これに変更すると機能しますが、では機能しません#!/bin/sh
。bash の存在に依存せずにこれを機能させる方法はありますか?
ちなみに、ダッシュから得られるエラーは次のとおりです。
trap: ERR: bad trap