我必须创建一个名为
"\?$*'ChouMi'*$?\"
的文件。所以输出应该是
$ ls | cat -e
"\?$*'ChouMi'*$?\"$
$
touch "\?$*'ChouMi'*$?\"
echo. > "\\?\$*'ChouMi'*$?\"
cat <<EOF > "\?$*'ChouMi'*$?\"
这些都不起作用
将名称放在双引号内,这样特殊字符(用于通配符的
*
和?
,以及用于引用的'
)将不会被处理。
但是双引号内,有些字符仍然有特殊含义,需要转义:
"
因为它结束了字符串?
因为它引入了变量和命令替换\
因为它是转义字符。在所有这些前面加上反斜杠以使它们字面意思。
touch "\"\\?*'ChouMi'*\$?\\\""