gpt4 book ai didi

bash - 在 bash 中更改变量

转载 作者:行者123 更新时间:2023-11-29 08:48:15 25 4
gpt4 key购买 nike

如何更改此变量?

max=0;
min=20000000;
cat |while read
do
read a
if [[ $a -gt $max ]]
then
max=a`
fi
`if [[ $a -lt $min ]]
then
min=a
fi
done
echo $max
echo $min

我的最小值和最大值仍然相同,分别是 0 和 2000000。有人可以帮我解决这个问题吗?我不知道。

最佳答案

脚本的(主要)问题是设置 minmax 发生在子 shell 中,而不是主 shell。因此,管道完成后更改不可见。

另一个是你调用了两次 read - 如果你想跳过每一行,这可能是有意的,但这有点不寻常。

最后一个是min=amin 设置为a,字面意思。你想将它设置为 $a

使用 process substitution要摆脱第一个问题,删除(可能)不必要的二次读取,并修复分配,您的代码应该如下所示:

max=0
min=20000000
while read a
do
if [[ $a -gt $max ]]
then
max=$a
fi
if [[ $a -lt $min ]]
then
min=$a
fi
done < <(cat) # careful with the syntax
echo $max
echo $min

关于bash - 在 bash 中更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10402537/

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