在shell编程中打印双引号

j2cgzkjk  于 2022-12-13  发布在  Shell
关注(0)|答案(3)|浏览(424)

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

示例

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

打印xyz,123,abc,pqrs
如何打印"xyz","123","abc","pqrs";
我曾试图在echo语句中放置双引号,但它没有被打印出来。

mepcadol

mepcadol1#

你只需要引用他们的话:

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

here所示:
用双引号将字符括起来('"')保留引号内所有字符的文字值,'$'、''、''除外,并且在启用历史记录扩展时,'!'。字符'$'和'“'在双引号中保留其特殊含义(请参阅Shell Expansions)。反斜扛只有在后面跟着下列其中一个字符时,才会保留其特殊意义:'$'、''、'“'、''或换行符。在双引号中,这些字符之一后面的反斜杠将被删除。没有特殊含义的字符前面的反斜杠将保持不变。可以通过在双引号前面加上一个反斜杠来将双引号括起来。如果启用,除非使用反斜杠对双引号中的“!”进行转义,否则将执行历史记录扩展。“!”前面的反斜杠不会被删除。
特殊参数'*'和'@'在双引号中具有特殊含义(请参阅Shell参数扩展)。

b09cbbtk

b09cbbtk2#

使用printf,无需转义:

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

并且尾随的;也会被打印出来!

vngu2lb8

vngu2lb83#

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

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

相关问题