我需要从 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
第一种方法似乎更好,因为它获得的预修改更少(将美元符号放在前面并将每个替换\
为\\
),但我不知道美元符号还能做什么。
我真的用谷歌搜索了这个,但我找不到我需要的东西......