在shell编程中打印双引号

时间:2013-09-21 05:12:03

标签: bash shell echo

我想在shell编程中使用echo语句打印双引号。

示例

echo "$1,$2,$3,$4";

打印xyz,123,abc,pqrs

如何打印"xyz","123","abc","pqrs";

我曾尝试在echo语句中放置双引号但不打印。

3 个答案:

答案 0 :(得分:30)

你只需要引用它们:

echo "\"$1\",\"$2\",\"$3\",\"$4\""

如上所述here

  

用双引号('“')括起字符可保留文字   引号内所有字符的值,“$”除外,   ''','\',以及,当启用历史记录扩展时,'!'。那些角色   '$'和'`'在双引号内保留其特殊含义(见   壳牌扩张)。反斜杠只有在保留其特殊含义时才会使用   接下来是以下字符之一:'$','`',''','\'或   新队。在双引号内,后跟其中一个的反斜杠   这些字符被删除。没有的字符前面的反斜杠   特殊含义未经修改。可以引用双引号   在双引号内用前面的反斜杠。如果启用,   除非'!'出现在double中,否则将执行历史扩展   引号使用反斜杠进行转义。 '!'之前的反斜杠   没有删除。

     

特殊参数'*'和'@'在double中具有特殊含义   引号(参见Shell参数扩展)。

答案 1 :(得分:8)

使用printf,不需要转义:

printf '"%s","%s","%s","%s";\n' $1 $2 $3 $4

并且也会打印尾随;

答案 2 :(得分:4)

您应该转义"以使其在输出中可见,您可以这样做:

echo \""$1"\",\""$2"\",\""$3"\",\""$4"\"