在 cat 文件的输出中打印单词 echo
Printing the word echo in the output of cat file
我正在尝试使用 bash 中的 cat 生成一个文件,在 bash 中,我已经 运行 一个脚本,我将其保存到一个变量中,然后将在其中使用那只猫。为了 运行 脚本并将输出保存到变量,我使用了以下内容:
declare RESULT=$(./script.pl 5 5 5)
接下来,我展示了使用变量 RESULT 的 cat 文件的摘录。
cat> input.in<<EOF
bla bla
echo $RESULT
EOF
我在运行和bash之后得到的是变量RESULT的正确输出。但是,文件开头有一个字回显(如下图)。这是有问题的,因为我正在尝试使代码自动化,而添加单词 echo 会破坏代码。
echo K_POINTS crystal
64
0.00000000 0.00000000 0.00000000 1.562500e-02
0.00000000 0.00000000 0.25000000 1.562500e-02
0.00000000 0.00000000 0.50000000 1.562500e-02
你能告诉我问题是什么吗?非常感谢!
这里的文档不会运行将内容作为命令,它们只是扩展值,如$RESULT
。
cat> input.in<<EOF
bla bla
$RESULT
EOF
如果你想真正得到命令的输出,你可以使用$(mycommand myarg)
,但显然这对echo
毫无意义
也许我没有正确阅读这篇文章(如果是这样的话,我们深表歉意),但看起来您希望 heredoc 成为 运行 作为脚本。它不是。它刚刚创建并被分类为 input.in,字符串 'echo' 包含在该输出中。
尝试从 heredoc 中删除字符串 'echo'(我假设您的 perl 输出以标记 K_POINTS 开头)。
即:
declare RESULT=$(./script.pl 5 5 5)
cat> input.in<<EOF
bla bla
$RESULT
EOF
我正在尝试使用 bash 中的 cat 生成一个文件,在 bash 中,我已经 运行 一个脚本,我将其保存到一个变量中,然后将在其中使用那只猫。为了 运行 脚本并将输出保存到变量,我使用了以下内容:
declare RESULT=$(./script.pl 5 5 5)
接下来,我展示了使用变量 RESULT 的 cat 文件的摘录。
cat> input.in<<EOF
bla bla
echo $RESULT
EOF
我在运行和bash之后得到的是变量RESULT的正确输出。但是,文件开头有一个字回显(如下图)。这是有问题的,因为我正在尝试使代码自动化,而添加单词 echo 会破坏代码。
echo K_POINTS crystal
64
0.00000000 0.00000000 0.00000000 1.562500e-02
0.00000000 0.00000000 0.25000000 1.562500e-02
0.00000000 0.00000000 0.50000000 1.562500e-02
你能告诉我问题是什么吗?非常感谢!
这里的文档不会运行将内容作为命令,它们只是扩展值,如$RESULT
。
cat> input.in<<EOF
bla bla
$RESULT
EOF
如果你想真正得到命令的输出,你可以使用$(mycommand myarg)
,但显然这对echo
也许我没有正确阅读这篇文章(如果是这样的话,我们深表歉意),但看起来您希望 heredoc 成为 运行 作为脚本。它不是。它刚刚创建并被分类为 input.in,字符串 'echo' 包含在该输出中。
尝试从 heredoc 中删除字符串 'echo'(我假设您的 perl 输出以标记 K_POINTS 开头)。
即:
declare RESULT=$(./script.pl 5 5 5)
cat> input.in<<EOF
bla bla
$RESULT
EOF