Bashが入力行全体を読み込んだ後、その行でコマンドを実行する前に結果を表示するにはどうすればよいですか?

Bashが入力行全体を読み込んだ後、その行でコマンドを実行する前に結果を表示するにはどうすればよいですか?

~から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エイリアスがないため拡張されません(エイリアスは読み取ると拡張されます)。この行が実行されると、エイリアスが設定され、エラーが発生します。

おすすめ記事