![](/img/trans.png)
[英]why single quotes and double quotes works differently in “bash -c”?
[英]Why Does Running Awk With Double Quotes Break But Works With Single Quotes?
我在運行命令時注意到該語句無法識別定界符
awk -F',' "{print $4}" wtd.csv
但是,這一點確實如此。
awk -F',' '{print $4}' wtd.csv
有什么原因嗎? 我確定這是我忘記的一些常規bash規則的一部分。
如果您使用雙引號,則$4
將被Bash替換(可能是空字符串)。 您需要轉義$
才能在雙引號中使用它。
發生這種情況的示例:
[thom@lethe ~]$ echo '$4'
$4
[thom@lethe ~]$ echo "$4"
[thom@lethe ~]$ echo "\$4"
$4
您忘記了雙引號允許bash變量插值。 在這種情況下,它將嘗試用外殼程序的第四個參數(通常為空)替換$4
。
單引號防止bash插值,並將文字$4
傳遞給awk。
您將獲得與以下結果相同的結果:
awk -F',' '{print $4}' wtd.csv
awk -F',' "{print \$4}" wtd.csv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.