0

我正在创建一个脚本,它将获取一个 csv 文件并制作一个 XML 文件。该脚本还将用户输入的数据也放入 xml 中。我创建了一个脚本来制作我的 XML,但是在文件开头输入我的读入变量时遇到问题。

最终将输入更长的行,其中包含 3 个变量 - 我现在只是在写基础知识。

我的问题是我无法将变量 $BUS 读入 ed 命令。我已经读过这是可能的,但我一直无法让它发挥作用。

我试过我的 EOF 有和没有单引号。

 echo "Enter BUS name"
        read BUS

echo $BUS

awk -f xmlbody $FILE  > result.xml
file=result.xml

ed -s $file <<'EOF'
0a
<?xml version="1.0" encoding="utf-8"?>
$BUS
<Data>
.
$a
</Data>
.
w
EOF

exit 0
4

1 回答 1

1

从bash的手册:

如果 [delimiter] 中的任何字符被引用,[...] here-document 中的行不会被扩展

您必须避免引用您的heredoc 分隔符(此处为EOF)。以下应该工作:

ed -s $file <<EOF
0a
<?xml version="1.0" encoding="utf-8"?>
$BUS
<Data>
.
\$a
</Data>
.
w
EOF
于 2020-01-17T10:54:08.900 回答