【发布时间】:2021-03-09 08:45:51
【问题描述】:
我想运行一个命令并将命令产生的结果与另一个值进行比较,然后回显 0 或 1。
例如(在伪代码中)类似于以下内容的内容:
if ($(app --version) == "1.2.3") then echo 1" else echo "0"
最好抑制来自 app --version 的实际命令输出,以便仅将 0 或 1 写入标准输出,具体取决于结果。
如何用 bash 做到这一点?有没有一个快速的班轮?
【问题讨论】:
-
到目前为止你尝试过什么?你被困在哪里了?
-
@NicoHaase 我尝试了类似
$(app --version) -eq "1.2.3" && echo "0" || echo "1"的方法,但这会导致版本被解释为命令。输出也没有受到抑制。我不熟悉 bash 脚本语法。我猜想为了抑制命令的输出,可以通过管道传输到 /dev/null ..?但首先我必须得到实际的比较才能工作 -
把cmd的结果放在双引号和括号里。例如
[ "$(app --version)" == "1.2.3" ] && echo 1 || echo 0 -
@MilanDufek 这导致
= not found。 -
是否真的支持 --version 标志?
标签: bash shell command-line