尝试执行以下操作:
echo "- - 830 "FTL MFG" -"
应将其"FTL MFG"
作为一项单独保留。
我究竟做错了什么?
答案1
echo "- - 830 "FTL MFG" -"
^^^^^^^^^^ ^^^^ quoted
^^^^^^^^ not quoted
echo
看到两个参数:- - 830 FTL
和MFG -
,并打印它们,中间有一个空格。如果您想要带引号的输出,则需要对它们进行转义,或使用单引号将字符串括起来:
echo "- - 830 \"FTL MFG\" -"
echo '- - 830 "FTL MFG" -'
答案2
双引号"
是字符串分隔符(字符串在 shell 中的工作方式与在大多数编程语言中的工作方式不同)。比较:
$ for a in "- - "830 FTL MFG" -"; do echo "$a"; done
- - 830
FTL
MFG -
您需要转义双引号(以便将它们解释为文字双引号)或用'
它来分隔字符串。
% echo "- - 830 \"FTL MFG\" -"
- - 830 "FTL MFG" -
% echo '- - 830 "FTL MFG" -'
- - 830 "FTL MFG" -