【发布时间】:2012-08-11 13:43:19
【问题描述】:
我需要从 Bash CLI 将字符串作为参数传递给程序,例如
program "don't do this"
字符串可以包含任何字符,如'$'、'\' 等,我不希望 Bash 进行任何修改。所以我考虑使用单引号。
但是以下方法不起作用:
program 'don\'t do this' //escape doesn't work in single quote
虽然以下两个有效:
program $'dont\'t do this' //seems fine, but any other side effects?
program 'dont'\''do this' //breaking into 3 parts
第一种方法似乎更好,因为它需要较少的预修改(将美元符号放在前面,并将每个\ 替换为\\),但我不知道美元符号还能做什么。
我真的在谷歌上搜索过这个,但我找不到我需要的东西......
【问题讨论】:
-
为了更好地理解
$'...'的例子,请看bash info page的第一段 -
感谢您发布此问题。了解如何对齐制表符分隔的记录(即
cat myData.tsv | column -t -s$'\t')至关重要
标签: bash quotes double-quotes single-quotes