POSIXシェル構文とは何ですか? http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10
次の割り当てを含む単純なコマンドを受け入れます。
FOO=bar foobar
ここで、最初の単語は規則7bに従ってトークンとして受け入れる必要がありますASSIGNMENT_WORD
(ただし、この規則が関連する制作に適用されることは明示的に指定されていませんが、ASSIGNMENT_WORD
理解できると思います)。
その後、2番目の言葉は受け入れられません。これを減らす唯一の方法は、cmd_word
本番を使用することです。ただし、これを行うには、規則7bではこれをaと言い、WORD
規則7bではを含まない単語については何も言及しません=
。
規則7bには、次のフレーズを追加する必要があります。
If the TOKEN does not contain `=` then it is a `WORD`.
これがないと、現在作成されている構文が正しくありません。私は正しいですか?
ベストアンサー1
文法は1つの単語のみを割り当て、それ以降の単語はコマンドとして扱われます。
あなたが引用した規則はTOKEN
、引用符のないスペースは含めることはできません。バラより2.3 トークン認識、例えば、
- 現在の文字が引用されていない場合
<blank>
、前の文字を含むすべてのトークンは区切り、現在の文字は削除されます。