gpt4 book ai didi

bash - 在 bash 中将比较输出打印为 bool 值

转载 作者:行者123 更新时间:2023-12-04 12:44:16 25 4
gpt4 key购买 nike

我有个问题

a=1
b=2

我想要一个变量的比较输出。即在 Windows 语言中,您可以编写这样的内容。它应该打印 false
print ($a == $b)

在控制台中尝试以下这些。
echo $a -eq $b
echo (( $a -eq $b ))
echo "$a" -eq "$b"
c= $(expr "$a" -eq "$b" )
echo $c

最佳答案

您可以使用算术扩展。

echo $(( a == b ))

如果表达式为真,这将打印 1,如果表达式为假,则打印 0。无需添加 $在变量名前,可以像C语言一样使用运算符,空格可以省略。见 Bash reference manual:Shell arithmetic了解更多信息。

让它打印字符串“true”或“false”有点棘手。通常我和@Inian 一样,但使用 if ... then .. else ... fi因为我通常在 set -euo pipefail 下编码:
if (( a == b )); then echo true; else echo false; fi

但我们可以聪明一点,做一个数组:
to_bool[0]="false"
to_bool[1]="true"
echo ${to_bool[$(( a == b ))]}

但我看不出有什么区别,然后只打印 01 .

关于bash - 在 bash 中将比较输出打印为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53477272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com