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