我想在shell编程中使用echo语句打印双引号。
示例
echo "$1,$2,$3,$4";
打印xyz,123,abc,pqrs
如何打印"xyz","123","abc","pqrs";
我曾尝试在echo语句中使用双引号,但没有打印出来。
发布于 2013-09-21 13:12:51
你只需要引用它们:
echo "\"$1\",\"$2\",\"$3\",\"$4\""
如上所述,here
将字符括在双引号(‘“’)中的
将保留引号中所有字符的字面值,但‘$’、‘
’, ‘\’, and, when history expansion is enabled, ‘!’. The characters ‘$’ and ‘
’除外,它们将保留其在双引号中的特殊含义(请参见外壳展开)。只有当后面跟有以下字符之一时,反斜杠才会保留其特殊含义:‘$’、‘`’、‘”’、‘\’或换行符。在双引号内,后面跟这些字符之一的反斜杠将被删除。没有特殊含义的字符前面的反斜杠保持不变。双引号可以用反斜杠加在双引号内。如果启用,则将执行历史记录扩展,除非出现‘!’出现在双引号中是使用反斜杠进行转义的。‘!’前面的反斜杠不会被删除。
特殊参数‘*’和‘@’在双引号中时具有特殊含义(请参阅外壳参数展开)。
发布于 2013-09-21 13:19:28
使用printf
,不需要转义:
printf '"%s","%s","%s","%s";\n' $1 $2 $3 $4
并且后面的;
也会被打印出来!
发布于 2013-09-21 13:17:11
您应该对"
进行转义以使其在输出中可见,您可以这样做:
echo \""$1"\",\""$2"\",\""$3"\",\""$4"\"
https://stackoverflow.com/questions/18929149
复制相似问题