迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

在 Bash 中获取可选的输入参数

作者:迹忆客 最近更新:2023/06/10 浏览次数:

有时我们需要创建一个动态函数,可以在不传递任何参数或不传递参数的情况下在两者中执行。 为此,我们需要为这些参数设置一些默认值,以便如果在调用函数时参数没有传递,它可以使用默认参数。

本文将演示如何为函数创建可选的输入参数。 我们还将查看一些示例和解释,以使该主题更容易理解。


在 Bash 中获取可选的输入参数

在下面的示例中,我们将打印默认值。 我们声明了 4 个包含默认值的变量。

我们示例的代码如下所示:

VAR1=${1:-foo}
VAR2=${2:-bar}
VAR3=${3:-1}
VAR4=${4:-$(date)}

echo "$VAR1"
echo "$VAR2"
echo "$VAR3"
echo "$VAR4"

代码执行后,我们将得到以下输出:

foo
bar
1
Sat Aug 13 14:59:31 +06 2022

现在让我们看一个高级示例。 在下面共享的示例中,我们创建了一个可以使用 0、1 和 2 参数的函数,并在函数内部设置了默认值。

现在,我们示例的代码如下所示:

FindSum()
{
    VAR1=${1:-40}
    VAR2=${2:-50}

    if [ $# -lt 1 ];
    then
        echo "The provided parameters are: $VAR1, $VAR2."
    elif [ $# -lt 2 ];
    then
        echo
        echo "The provided parameters is: $VAR2."
    else
        echo
        echo "No parameters provided"
        VAR1=$1
        VAR2=$2
    fi
    SUM=$((VAR1+VAR2))
    echo "The sum of $VAR1 and $VAR2 is $SUM"
}

FindSum
FindSum 40
FindSum 70 30

让我们逐个解释代码。

首先,我们使用行 VAR1=${1:-40}VAR2=${2:-50} 设置变量的默认值。 之后,我们检查是否给出了这些变量的值。

如果值不提供它们,我们必须使用它的默认值; 否则,使用用户给定的值。

最后,我们刚刚使用行 SUM=$((VAR1+VAR2)) 执行了求和运算并打印了结果。 在这里,我们通过 FindSum 调用了不带任何参数的函数。

同样,我们使用 FindSum 40 行调用带有一个参数的函数。我们使用 FindSum 70 30 行调用带有两个参数的函数。

The provided parameters are: 40, 50.
The sum of 40 and 50 is 90

The provided parameters is: 50.
The sum of 40 and 50 is 90

No parameters provided
The sum of 70 and 30 is 100

本文中使用的所有代码都是用 Bash 编写的。 它只会在 Linux Shell 环境中工作。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便