入力変数にスペースがありますか? [コピー]

入力変数にスペースがありますか? [コピー]

以下を含むスクリプトがあるとしましょう。

command $1

また、オプションのパラメータがあることが示されているので、commandこれも可能ですcommand $1 $2

ここにスペースがあると$1どうなりますか?(仮定しよう$1=A B?コマンドはthatと解釈されますかcommand A B、それともcommand A\ B単一の変数はどこにありますか?A B

ベストアンサー1

通常、$1スペースが含まれていて二重引用符で囲まれていない場合は、複数入力トークンとして解釈されます。単一のトークンとして解釈するには、二重引用符で囲みますcommand "$1" $2。つまり、デフォルトではトークンを区切るためにスペースが使用されるためです。この動作は環境変数の値を設定することで変更できますIFS。詳細については、Advanced Bash Scripting Guideの次のページをご覧ください。

おすすめ記事