On Sun, 10 Aug 2025 19:11:52 +0530 Ojaswin Mujoo <ojaswin@xxxxxxxxxxxxx> wrote: > Many programs open code these functionalities so add it as a generic helper > in common/rc > > Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> > Signed-off-by: Ojaswin Mujoo <ojaswin@xxxxxxxxxxxxx> > --- > common/rc | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/common/rc b/common/rc > index 96578d15..3858ddce 100644 > --- a/common/rc > +++ b/common/rc > @@ -5873,6 +5873,28 @@ _require_program() { > _have_program "$1" || _notrun "$tag required" > } > > +_min() { > + local ret > + > + for arg in "$@"; do > + if [ -z "$ret" ] || (( $arg < $ret )); then > + ret="$arg" > + fi > + done > + echo $ret > +} Perhaps: local ret="$1" shift for arg in "$@"; do ret=$(((arg) < (ret) ? (arg) : (ret))) done; echo "$ret" that should work for 'min 10 "2 + 3"' (with bash, but not dash). David > + > +_max() { > + local ret > + > + for arg in "$@"; do > + if [ -z "$ret" ] || (( $arg > $ret )); then > + ret="$arg" > + fi > + done > + echo $ret > +} > + > ################################################################################ > # make sure this script returns success > /bin/true