こんにちは!私はBashに関連するすべてのものの初心者です。構文に慣れており、このコマンドの作業順序が私が考えているものと同じかどうかを知りたいです。
コマンド:
echo 2 * 3 > 5 is a valid inequality
Cameron Newham の Bash シェル学習
私は順序が次のように思う。
echo
説明を受ける2
読み取りおよびバッファリング*
解釈され、検索が初期化されます。- 現在のフォルダ内の一致する各ファイルがバッファに追加されます。
3
読み取りおよびバッファリング> 5
解釈され、5
新しいファイルが生成され、出力もリダイレクトされます。is
読み取りおよびバッファリングa
読み取りおよびバッファリングvalid
読み取りおよびバッファリングinequality
読み取りおよびバッファリングecho
バッファの内容を次に出力します。5
事前にありがとう
答え1
私はbashのソースコードを読みませんが、あなたが想像しているように起こるのは疑わしいです。なぜなら、最も洗練されたインタプリタは、解釈する際に何もせずに文全体を読んで調べてから実装するからです。彼らは5のような記号を読み、ファイルを作成し、読み続けて「バッファリング」しません。
(時々)知っておくべきことはbashでの処理の順序です:中括弧拡張、引数と変数拡張、算術拡張、コマンド置換。
あなたの質問に対する答えは次のとおりです。トークン化は最初のステップではなく最後のステップの1つであるため、テキストの読み込み中にファイルを生成することは困難です。
Bashの詳細は、ほとんどの人が考えるよりも複雑です。そしてそれは良いことではありません。実装するには、完全な再設計が必要な可能性がある難解な雑動サニーです。しかし、それがまさにその方法です。