~からBash マニュアル、セクション 6.6 エイリアス、
…常にスラム読む前に行全体を少なくとも1つ入力してください。 実装するその行のすべてのコマンド。コマンドが実行されると、エイリアスが拡張されます。読む、そんなときはしないで 処刑された。したがって、他のコマンドと同じ行に表示されるエイリアス定義は、次の入力行を読むまで適用されません。
ここで私は理解する方法を見つけようとしています。 次のうち、「入力の行全体を読んで」「該当行からコマンドを実行する」ときにシェルが何をするのですか?
結果を表示するためのコマンドと例はありますか?
- 後ろに 吹く 読む 1行全体を入力してください。
- しかし、今後 実装するこの行にコマンドがありますか?
例えば、
- 「入力の行全体を入力してください」は、複数のコマンドで構成される複合コマンドです。
- 「完全な入力ライン」は、複数の複合コマンドのパイプライン、パイプラインのリストなどでもあります。
ベストアンサー1
これを理解する良い方法は、次の例を見ることです。https://stackoverflow.com/questions/38526612/bash-unable-to-set-and-use-alias-in-the-same-line
たとえば、次のコマンドを実行しようとします。
$ alias foo="echo bac" ; foo;
-bash: foo: command not found
$ foo
bac
bashは行全体を読み込み、foo
エイリアスがないため拡張されません(エイリアスは読み取ると拡張されます)。この行が実行されると、エイリアスが設定され、エラーが発生します。