[英]Nested double-quotes in Bash scripts
當我編寫 bash 腳本時,我發現以下語句有效並且按預期工作:
#!/bin/bash
fn="file name"
LF='
'
fnc="$LF$(cat "$fn")"
echo "$fnc"
但是在fnc="$LF$(cat "$fn")"
有一對無人值守的嵌套引號。 這是功能還是運氣?
這是所有 POSIX shell 都具有的特性,在標准中簡要描述如下。
括在
$(
和匹配)
之間的引號字符串中的輸入字符不應受雙引號 [.]
這意味着,在這種特殊情況下,如果在命令替換中取消引用"$fn"
,無論如何它將受到分詞,並且cat
將接收兩個參數( file
和name
)而不是一個( file name
)。 $(cat $fn)
是否在雙引號之間並不影響$fn
的擴展方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.