簡體   English   中英

Bash 腳本中的嵌套雙引號

[英]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將接收兩個參數( filename )而不是一個( file name )。 $(cat $fn)是否在雙引號之間並不影響$fn的擴展方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM