![bash/bc 等中有 javascript Math.min() 的等效项吗?](https://linux22.com/image/81100/bash%2Fbc%20%E7%AD%89%E4%B8%AD%E6%9C%89%20javascript%20Math.min()%20%E7%9A%84%E7%AD%89%E6%95%88%E9%A1%B9%E5%90%97%EF%BC%9F%20.png)
Math.min()
我需要将一些javascript计算转换为bash,我想知道bash、bc或shell中的任何其他计算器中是否有等效的javascript函数?
答案1
使用 POSIX shell:
min() {
min=$1
shift
for arg do
min=$((arg<min?arg:min))
done
printf '%s\n' "$min"
}
zsh
除、ksh
和之外的所有 shellyash
都不支持浮点数。
使用 POSIX 工具箱:
min() {
awk 'BEGIN {
min = ARGV[1]
for(i = 2; i < ARGC; i++)
min = ARGV[i] < min ? ARGV[i] : min
print min
}' "$@"
}
如果你有perl
:
min() {
perl -MList::Util=min -le 'print min @ARGV' "$@"
}
或者perl6
:
min() {
perl6 -e '@*ARGS.min.say' "$@"
}
答案2
将数据推送到文件中,然后对它们进行排序并获取第一行。
#/bin/sh
echo $VAR1 > $FILE
echo $VAR2 >> $FILE
echo $VAR3 >> $FILE
RET=$(sort -n $FILE | sort -n)