我想在shell编程中使用echo语句打印双引号。
示例:
echo "$1,$2,$3,$4";
打印xyz,123,abc,pqrs
如何打印"xyz","123","abc","pqrs";
我曾尝试在echo语句中放置双引号但不打印。
答案 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"\"