如何 select 最小整数 4 用于 bash 脚本文件
How do I select the smallest integer of 4 for use in bash script file
所以我 运行 遇到了这个问题。所以我得到了这四个整数
a={random integer} ; b={random integer} ; c={random integer} ; d={random integer}
我想 select 这四个中最小的那个。
我试过了,但是没有用。
(( a < b ? a : b ))
此输出以太币 1 或 2,但仅适用于 a
和 b
。
我尝试过的另一件事是使用 (( a < b ? a : b ))
但也使用 (( c < d ? c : d ))
和一堆 case 语句和 if 语句,但是最终会慢很多并且文件大小密集比理论上可能的要多。
那么综上所述,我该如何选择四个整数中最小的个数?
我不知道这是否是您要找的,但是:
a=5
b=6
c=4
d=7
e=$(echo -e "$a\n$b\n$c\n$d" | sort -n | head -n 1)
如果您只想获得最小值,并且不必知道它是哪个变量,就可以正常工作。
一般来说,如果您有那么多变量需要相互比较,那么将它们放入数组中可能是一个标志。这里不一定是这种情况,但这可能表明它们在逻辑上是相关的。
在 bash find minimum of multiple variables
(或类似的)上进行网络搜索会出现几个匹配项(例如,this, this, this),这会给您一些想法。
设置:
a=3; b=-2; c=6; d=10
一些想法:
$ printf "%s\n" $a $b $c $d | sort -n | head -1
-2
$ unset min; for i in $a $b $c $d; do [[ "$i" -le "${min:-$i}" ]] && min="$i"; done; echo $mim
-2
$ min=$a; for i in $b $c $d; do (( i<=min ? (min=i) : (min=min) )); done; echo $min
-2
$ echo $a $b $c $d | awk '{ min=; for (i=2;i<=NF;i++) min=($i<min ? $i : min); print min}'
-2
尝试
declare -i min='a<b?a:b'
min='min<c?min:c'
min='min<d?min:d'
echo "$min"
所以我 运行 遇到了这个问题。所以我得到了这四个整数
a={random integer} ; b={random integer} ; c={random integer} ; d={random integer}
我想 select 这四个中最小的那个。
我试过了,但是没有用。
(( a < b ? a : b ))
此输出以太币 1 或 2,但仅适用于 a
和 b
。
我尝试过的另一件事是使用 (( a < b ? a : b ))
但也使用 (( c < d ? c : d ))
和一堆 case 语句和 if 语句,但是最终会慢很多并且文件大小密集比理论上可能的要多。
那么综上所述,我该如何选择四个整数中最小的个数?
我不知道这是否是您要找的,但是:
a=5
b=6
c=4
d=7
e=$(echo -e "$a\n$b\n$c\n$d" | sort -n | head -n 1)
如果您只想获得最小值,并且不必知道它是哪个变量,就可以正常工作。
一般来说,如果您有那么多变量需要相互比较,那么将它们放入数组中可能是一个标志。这里不一定是这种情况,但这可能表明它们在逻辑上是相关的。
在 bash find minimum of multiple variables
(或类似的)上进行网络搜索会出现几个匹配项(例如,this, this, this),这会给您一些想法。
设置:
a=3; b=-2; c=6; d=10
一些想法:
$ printf "%s\n" $a $b $c $d | sort -n | head -1
-2
$ unset min; for i in $a $b $c $d; do [[ "$i" -le "${min:-$i}" ]] && min="$i"; done; echo $mim
-2
$ min=$a; for i in $b $c $d; do (( i<=min ? (min=i) : (min=min) )); done; echo $min
-2
$ echo $a $b $c $d | awk '{ min=; for (i=2;i<=NF;i++) min=($i<min ? $i : min); print min}'
-2
尝试
declare -i min='a<b?a:b'
min='min<c?min:c'
min='min<d?min:d'
echo "$min"