Java 未平仓报价应为“报价”;“应用程序版本”;与元素类型“关联”;“应用程序名称”; echo“G57 LIVEgenericgeneric JOEDESKTOP-5X1 图瓦 $id20210217“>“$xml_dir/$id.xml” :>“$trigger\u dir/$id.trigger”

Java 未平仓报价应为“报价”;“应用程序版本”;与元素类型“关联”;“应用程序名称”; echo“G57 LIVEgenericgeneric JOEDESKTOP-5X1 图瓦 $id20210217“>“$xml_dir/$id.xml” :>“$trigger\u dir/$id.trigger”,java,linux,bash,shell,echo,Java,Linux,Bash,Shell,Echo,我正试图找出“SP1.11”给我这个错误的原因。您需要对嵌套的双引号进行转义,以便它们被视为字符串中的文字字符,而不是过早地关闭和重新打开字符串的引号部分 echo "<Transaction><TypeofTrans>G5</TypeofTrans><Priority>7</Priority> <ContentType>LIVE</ContentType><OrigAgency>gener

我正试图找出“SP1.11”给我这个错误的原因。

您需要对嵌套的双引号进行转义,以便它们被视为字符串中的文字字符,而不是过早地关闭和重新打开字符串的引号部分

echo "<Transaction><TypeofTrans>G5</TypeofTrans><Priority>7</Priority>
<ContentType>LIVE</ContentType><OrigAgency>generic</OrigAgency><DestAgency>generic</DestAgency>
<Sender><OperatorID>JOE</OperatorID><HostName>DESKTOP-5X</HostName><BPID>1</BPID>
<ApplicationName ApplicationVersion="SP1.1">TEW</ApplicationName></Sender>
<ID>$id</ID><Date>20210217</Date>" > "$xml_dir/$id.xml"    

    : > "$trigger_dir/$id.trigger"
echo“…TEW…”>“$xml\u dir/$id.xml”
还可以简单地切换引号,因为引号不定义字符串;它们只为字符串的一部分提供大容量转义

例如:

echo "...<ApplicationName ApplicationVersion=\"SP1.1\">TEW</ApplicationName>..." > "$xml_dir/$id.xml"    
echo'G57LIVEgenericgenericJOEDESKTOP-5X1TEW'“$id20210217”>“$xml\u dir/$id.xml”

字符串的大部分都用单引号括起来,包括包含双引号的部分。只有最后一个需要参数扩展的部分使用双引号。

您必须转义一个双引号,该双引号将包含在双引号字符串中。如果查看文件内容,您将看到类似于
;属性值的引号被
bash
@chepner视为语法。您能为我提供echo statemenet中双引号字符串的正确语法吗?
echo '<Transaction><TypeofTrans>G5</TypeofTrans><Priority>7</Priority><ContentType>LIVE</ContentType><OrigAgency>generic</OrigAgency><DestAgency>generic</DestAgency><Sender><OperatorID>JOE</OperatorID><HostName>DESKTOP-5X</HostName><BPID>1</BPID><ApplicationName ApplicationVersion="SP1.1">TEW</ApplicationName></Sender>'"<ID>$id</ID><Date>20210217</Date>" > "$xml_dir/$id.xml"