「$?」を使用すると「ls」コマンドが見つからないのはなぜですか?

「$?」を使用すると「ls」コマンドが見つからないのはなぜですか?

割り当ての問題:

端末で「good」、「ls」を実行して実行状態を確認します。

私がしたこと

good;$?

出力:

zsh: command not found: good
zsh: command not found: 127

ls;$?

出力:

quiz.sh
zsh: command not found: 0

このコマンドが存在する場合、lsコマンドが見つからないのはなぜですか?

ベストアンサー1

「コマンドが見つかりません」というメッセージは表示されませんls。そこから出力を見ることができますlscommand not found0これが拡張されるの$?です。

$?前のコマンドの状態です。実行後はlsエラーがないため、ステータスは0です。を実行した後のgood状態は127です。これは、コマンドが見つからないときにシェルが使用する状態です。

状態を表示するには、表示するだけでよいことをシェルに伝えなければなりません。これがこのechoコマンドの目的です。

good; echo $?
ls; echo $?

おすすめ記事