使用shell脚本创建xml文件

使用shell脚本创建xml文件,shell,Shell,我正在尝试使用具有以下源代码的shell脚本创建一个xml文件 #!/bin/sh header=`<?xml version="1.0" encoding="UTF-8" standalone="no"?> <menu_details>` fmt=` <menu name="%menuName"> <group name="%grpName" type="%M">

我正在尝试使用具有以下源代码的shell脚本创建一个xml文件

#!/bin/sh
header=`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<menu_details>`

fmt=`   <menu name="%menuName">
                <group name="%grpName" type="%M">
                        <page-details>
                                <page>
                                        <page-name>%pageName</page-name>
                                </page>
                        </page-details>
                </group>
        </menu>
`
footer=`</menu_details>`

{
printf "%s\n" "$header"
while read menuName grpName M pageName
do
        printf "$fmt" "$menuName" "$grpName" "$M" "$pageName"
done < "dd.lst"
printf "%s\n" "$footer"
} > dd.xml
#/垃圾箱/垃圾箱
标题=`
`
fmt=`
%页码
`
页脚=``
{
printf“%s\n”$header
读取Menuame grpName M pageName时
做
printf“$fmt”“$menuName”“$grpName”“$M”“$pageName”
完成<“第一日”
printf“%s\n”$footer
}>dd.xml

这是正确的方法吗?

您需要对多行字符串使用单引号。此外,用于printf的格式说明符也不正确:

#!/bin/sh
header='<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<menu_details>'

fmt='   <menu name="%s">
                <group name="%s" type="%s">
                        <page-details>
                                <page>
                                        <page-name>%s</page-name>
                                </page>
                        </page-details>
                </group>
        </menu>
'
footer='</menu_details>'

{
printf "%s\n" "$header"
while read menuName grpName M pageName
do
        printf "$fmt" "$menuName" "$grpName" "$M" "$pageName"
done < "dd.lst"
printf "%s\n" "$footer"
}
#/垃圾箱/垃圾箱
收割台
'
fmt=
%
'
页脚=“”
{
printf“%s\n”$header
读取Menuame grpName M pageName时
做
printf“$fmt”“$menuName”“$grpName”“$M”“$pageName”
完成<“第一日”
printf“%s\n”$footer
}

这符合我的要求,非常感谢。