使用shell脚本创建xml文件

时间:2014-05-29 04:05:28

标签: 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">
                        <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

这是正确的方法吗?

1 个答案:

答案 0 :(得分:2)

您需要为多行字符串使用单引号。您用于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"
}