"${pattern:?word}" 形式を使用して、パラメータ拡張によって発生したエラーメッセージを修正できますか?

次のスクリプトがあるとしますtest.sh

#! /bin/sh -
printf '%s\n' "${1:?empty or missing argument}"

コマンドライン引数なしで実行した場合の動作は次のとおりです。

$ ./test.sh
./test.sh: 2: ./test.sh: 1: empty or missing argument

質問:変更できますか?"./test.sh:2:"エラーメッセージの一部ですか?

ベストアンサー1

あなたの質問に対する答えは「いいえ」です。その構文を使用すると、説明するスクリプト、行番号、および標準エラーを参照する変数が出力されます。これを変更するには、標準エラーをプロセスにパイプしてエラーメッセージを出力するスクリプト自体を実行するスクリプトから目的の形式に変換します。

おすすめ記事