我想在 shell 编程中使用 echo 语句打印双引号。
示例:
echo "$1,$2,$3,$4";
印刷xyz,123,abc,pqrs
如何打印"xyz","123","abc","pqrs";
我曾尝试在 echo 语句中放置双引号,但它没有被打印出来。
你只需要引用它们:
echo "\"$1\",\"$2\",\"$3\",\"$4\""
如此处所述:
将字符括在双引号 ('"') 中会保留引号内所有字符的字面值,但 '$'、'`'、'\' 以及启用历史扩展时的 '!' 除外。字符 '$' 和 '`' 在双引号中保留其特殊含义(请参阅 Shell 扩展)。反斜杠仅在后跟以下字符之一时才保留其特殊含义:'$'、'`'、'"'、' \',或换行符。在双引号内,删除后面跟有这些字符之一的反斜杠。没有特殊含义的字符前面的反斜杠保持不变。双引号可以用反斜杠在双引号中引用。如果启用,将执行历史扩展,除非出现“!” 出现在双引号中的使用反斜杠进行转义。'! 前面的反斜杠
特殊参数 '*' 和 '@' 在双引号中具有特殊含义(请参阅 Shell 参数扩展)。
使用printf
,不需要转义:
printf '"%s","%s","%s","%s";\n' $1 $2 $3 $4
尾随;
也被打印出来了!
您应该转义"
以使其在输出中可见,您可以这样做:
echo \""$1"\",\""$2"\",\""$3"\",\""$4"\"