bashの「command not found」をカスタムする


存在しないコマンドを入力した時に「コマンドが見つかりません」や「comannd not found」などといったような表示が出ますが、これをカスタムする方法をメモります。

通常では、以下のように存在するコマンド( 例 echo ) を入力すると、コマンドに応じた動作をし、存在しないコマンド( ehcooooo )を入力するとエラーメッセージが返ってきます。

echo "test"
実行結果 => test

echoooooo "test"
実行結果 => command not found

この2番目の例の、コマンドが見つからなかった場合の表示を自由に変更します。

.bashrcに以下のような記述を追記します。

command_not_found_handle() {
  local cmd
  cmd=${1##*/}
  echo "\"${cmd}\"なんてコマンドありまへん。"

}

これで設定OKです。

コンソールを起動しなおすか、以下のコマンドでbashrcを読み込ませてください。

source ~/.bashrc

では、存在しないコマンドを打ってみましょう。

echoooooo "test"
実行結果 => "echoooooo"なんてコマンドありまへん。

ちゃんと、設定したエラーメッセージになりました。

.bashrcでcommand_not_found_handleの中身を変えてやればカスタムし放題です。

以上です。