0
A
答えて
5
"[email protected]"
は、引用符で囲まれたコマンドラインパラメータのリストに展開されます。それは、"$*"
から微妙に異なっている:
set "a b" c d
"$*"
所与
"a b c d"
に展開"[email protected]"
が
"a b" c d
及び$*
(又は[email protected]
)展開に展開に対し
「$*"
は単一の文字列を生成しますが、"[email protected]"
は元の引用を複製し、$*
は引用を失います。
1
man bash
から:
@位置パラメータに展開されます。展開が二重引用符で囲まれると、各パラメータは別の単語に展開されます。つまり、 "$ @"は "$ 1" "$ 2"に相当します...単語内で二重引用符で囲まれた展開が行われると、最初のパラメータの展開が元の単語の先頭部分と結合され、展開最後のパラメータの最後の部分が元の単語の最後の部分と結合されます。
2
すべての位置パラメータは、二重引用符で囲まれています。 http://tldp.org/LDP/abs/html/internalvariables.html#APPREF
1
$ @は、スクリプトに渡されるすべての引数を表します。
あなたは、このようにfoo.shというスクリプトを呼び出す場合:[email protected]
が空で、[email protected]
がないときに
> boo goo loo
0
:このなります @の出力$
$> foo.sh boo goo loo
を空の文字列に展開します。それは完全に取り除かれます。だからあなたのテストではありません。
[ -n "" ]
ではなく、むしろ:今
[ -n ]
-n
は、オペレータが、いつものように、真のテストだけで非空の文字列、ではありません。
関連する問題
- 1. EOFとは何ですか? bashスクリプトで?
- 2. bashスクリプトの[...]とは何ですか?
- 3. 「$?」とは何ですか? bashスクリプトの意味ですか?
- 4. このbashスクリプト関数は何ですか
- 5. ヘルパークラスとスクリプトとは何ですか?
- 6. Bashスクリプトとエスケープ
- 7. Bash初心者です。 bashスクリプト
- 8. ROBLOX Luaスクリプトとは何ですか?
- 9. 何らかの理由でmysqlコマンド出力をbashスクリプト
- 10. bashスクリプトは、ファイル
- 11. ソースはbashスクリプト
- 12. bashスクリプトは
- 13. bashスクリプトは
- 14. bashスクリプト、
- 15. bashスクリプトとrakeスクリプトのrvmとsudo
- 16. はbashでスクリプトを生成し、bashでsudoの
- 17. Powershell関数スクリプトは何ですか:functionnameは何ですか?特にスクリプト:part
- 18. は、私はbashスクリプトから次のコマンドを実行するbashスクリプト
- 19. bashスクリプト
- 20. bashスクリプト。
- 21. SSHでbashスクリプトを開始
- 22. バックグラウンドでbashスクリプトを実行
- 23. bashスクリプトでの同時ログイン
- 24. bashスクリプト
- 25. bashスクリプト/のpgrepは
- 26. bashスクリプトは、ここでのMac OS X
- 27. bashスクリプト、case文とサブメニュー
- 28. このシンプルなMYSQL bashスクリプトで何が問題になっていますか?
- 29. bashスクリプト 'here strings'
- 30. Bashでは$ {2: - $ {1}}の意味は何ですか?
[unix shell programming special variables](http://stackoverflow.com/questions/3206312/unix-shell-programming-special-variables)を参照してください。 –