创建一个 Bash 脚本,它将采用 2 个数字作为命令行参数。它将在屏幕上打印两个数字中较大的一个

创建一个 Bash 脚本,它将采用 2 个数字作为命令行参数。它将在屏幕上打印两个数字中较大的一个

我应该使用哪些命令?我应该使用双括号吗?如果我使用 40 + 30 作为这两个数字,我的输出应该是什么?拜托,我才刚刚开始,我需要帮助。

答案1

您提到了 bash,因此您可以使用算术评估(请参阅man bash并搜索算术评估)。

示例脚本:

#!/bin/bash

a=$1
b=$2

if (( a > b )); then
    printf '%d\n' "$a"
else
    printf '%d\n' "$b"
fi

不要忘记验证您的输入!例子:

if [[ ! "$1" =~ ^[[:digit:]]+$ ]] ||
   [[ ! "$2" =~ ^[[:digit:]]+$ ]]
then
    echo 'One of the arguments is not a number' >&2
    exit 1
fi

答案2

echo $(($1 > $2 ? $1 : $2))

但您可能想在那里添加一些错误检查。例如:

  • 参数数量 ( $#) 是否正确?
  • 参数是否是格式良好的整数,例如?(-)+([0-9])

相关内容