bash/bc 等中有 javascript Math.min() 的等效项吗?

bash/bc 等中有 javascript Math.min() 的等效项吗?

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)

相关内容