gpt4 book ai didi

Bash:测试多个变量的相互相等性?

转载 作者:行者123 更新时间:2023-12-05 09:24:49 25 4
gpt4 key购买 nike

测试多个变量是否都相等的正确方法是什么?

if [[ $var1 = $var2 = $var3 ]] # syntax error

有必要这样写吗?

if [[ $var1 = $var2 && $var1 = $var3 && $var2 = $var3 ]] # cumbersome
if [[ $var1 = $var2 && $var2 = $var3 && $var3 = $var4 ]] # somewhat better

不幸的是,其他方面都很出色Advanced Bash Scripting Guide以及我能找到的其他在线资源都没有提供这样的示例。

我的特别动机是使用 ls -1 $dir | 测试多个目录是否都具有相同数量的文件wc -l 统计文件数。

注意
“var1”等是示例变量。我正在为任意变量名寻找解决方案,而不仅仅是那些具有可预测数字结尾的变量名。

更新
我接受了 Richo 的回答,因为它是最笼统的。然而,我实际上使用的是 Kyle 的,因为它是最简单的,而且我的输入可以保证避免警告。

谢谢大家的建议。

最佳答案

如果你想测试任意数量的项目是否相等(我们称它们为 $item1-5,但它们可以是一个数组

st=0
for i in $item2 $item3 $item4 $item5; do
[ "$item1" = "$i" ]
st=$(( $? + st ))
done

if [ $st -eq 0 ]; then
echo "They were all the same"
fi

关于Bash:测试多个变量的相互相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8812089/

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