Bash如何初始化变量并将其值输出到一行中的文件

时间:2020-02-25 13:40:56

标签: bash shell

PV=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' exec:exec)
PV >> test.txt

我想将其转换为单一格式,这样它既可以初始化变量,也可以将其值输出到test.txt

类似这样的东西,但是不起作用:

PV=$($(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' exec:exec)) >> test.txt

2 个答案:

答案 0 :(得分:3)

使用 tee 命令

PV=$(echo XXX | tee test.txt)

现在text.txt包含 XXX ,变量PV的值也为 XXX
在您的情况下,我猜命令应该是:

PV=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' exec:exec | tee test.txt)

答案 1 :(得分:1)

尝试同时在一行中同时进行这是非常不自然的。使用两行。请注意,PV >> test.txt不起作用。您需要在那里的echo

PV=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' exec:exec)
echo "$PV" >> test.txt

如果您真的想在一行中执行此操作,则可以使用tee,但我不建议这样做。两行更容易阅读。

PV=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' exec:exec | tee -a test.txt)