我需要编写一个脚本来输出XML文件的第一行,如下所示:
<?xml version="1.0" >
并回显相应的命令。 换句话说,我想要相当于这个:
mike@remote:#echo \<?xml version=\"1.0\" \> > file.xml
mike@remote:#cat file.xml
<?xml version="1.0" >
mike@remote:#
下面是我的脚本,但我无法使其正常工作。我确实需要使用数组,因为我稍后会添加几个命令。
#!/bin/bash
COMMAND1='echo \<?xml version=\"1.0\" \> > file.xml'
ARRAY=("$COMMAND1")
for COMMAND in ${ARRAY[@]}; do
eval $COMMAND
echo "$COMMAND"
done
有人知道如何解决这个问题吗?
谢谢,
答案 0 :(得分:0)
这应该是这样的:
#!/bin/bash
COMMAND1='echo \<?xml version=\"1.0\"\> > file.xml'
ARRAY=("$COMMAND1")
for COMMAND in "${ARRAY[@]}"; do
eval "$COMMAND"
echo "$COMMAND"
done
这将创建file.xml
文件并生成以下输出:
echo \<?xml version=\"1.0\"\> > file.xml
运行脚本后,我运行cat file.xml
,输出为:
<?xml version="1.0">
答案 1 :(得分:0)
如何使用tee
?既然你说你有很多命令,那么他们都去了file.xml吗?不太确定你想要什么(也许你可能想澄清它)但是这里有一个例子:
#!/bin/bash
STRING1='<?xml version="1.0">'
> file.xml
ARRAY=("$STRING1")
for STRING in "${ARRAY[@]}"; do
echo "$STRING" | tee -a file.xml
done
tee -a
继续打印到控制台,同时将输出附加到file.xml。