什麼時候和為什麼
當 shell 執行引數擴充套件,命令替換,變數或算術擴充套件時,它會掃描結果中的字邊界。如果找到任何單詞邊界,則結果將在該位置拆分為多個單詞。單詞邊界由 shell 變數 IFS
(內部欄位分隔符)定義。IFS 的預設值是空格,製表符和換行符,即如果未明確禁止,則會在這三個空格字元上進行單詞拆分。
set -x
var='I am
a
multiline string'
fun() {
echo "-$1-"
echo "*$2*"
echo ".$3."
}
fun $var
在上面的例子中,這是 fun
函式的執行方式:
fun I am a multiline string
$var
分為 5 個 args,只列印I
,am
和a
。