シェルのコマンド処理は以下のように行われます。
- シェルは入力を単語と演算子に分割します。
- シェルは入力を単純なコマンドと複合コマンドに解析します。
- シェルは各コマンドのさまざまな部分に展開を適用し、コマンドと引数のリストを生成します。
- シェルはリダイレクションを実行し、リダイレクション演算子とそれらのオペランドを削除します。
- シェルは関数、ビルトインコマンド、実行可能ファイル、またはスクリプトを実行し、引数とコマンド名を指定します。
- シェルはオプションでコマンドの完了を待ち、終了ステータスを収集します。