単語分割が果たす役割について混乱していzsh
ます。C、Python、またはMATLABでプログラミングするときにこの概念に触れたことはありません。これが、単語分割がシェルプログラミングに固有のものであるように思える理由への興味を引き起こしました。
このサイトや他のサイトで単語分割について読んだことがありますが、この概念の明確な説明は見つかりませんでした。ウィキペディアには単語分割の定義がありますが、Unixシェルへの適用方法についての言及はないようです。
以下に私の混乱の例を示しzsh
ます。
ではZシェルよくある質問、私は以下をお読みください。
3.1:なぜ私が期待することを
$var
どこでしvar="foo bar"
ないのですか?ほとんどのBourneシェル派生物では、などの複数ワード変数
var="foo bar"
は、コマンドに渡されるか、for foo in $var
ループで使用されるときにワードに分割されます。デフォルトでは、zshにはそのような振る舞いはありません。変数はそのまま残ります。(これはバグではありません!以下を参照してください。)SH_WORD_SPLIT
互換性を提供するオプションがあります。
ただし、Z Shell Manualでは、次を読みました。
SH_WORD_SPLIT (-y) <K> <S>
引用符で囲まれていないパラメーター展開でフィールド分割を実行します。このオプションは 単語の分割とは関係がないことに注意してください。(パラメータ拡張を参照してください。)
なぜそれは単語の分割とSH_WORD_SPLIT
は関係ないと言うのですか?単語の分割は、これがすべて何であるかを正確に示していませんか?
"word1 word2 word3"
リスト/配列に変換すると言うのは正しい"word1" "word2" "word3"
ですか?また、zshの特定の混乱の原因でOPを更新しました。