在 Bash 中获取可选的输入参数
有时我们需要创建一个动态函数,可以在不传递任何参数或不传递参数的情况下在两者中执行。 为此,我们需要为这些参数设置一些默认值,以便如果在调用函数时参数没有传递,它可以使用默认参数。
本文将演示如何为函数创建可选的输入参数。 我们还将查看一些示例和解释,以使该主题更容易理解。
在 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 环境中工作。
相关文章
在 Bash 中 fork
发布时间:2023/06/10 浏览次数:85 分类:操作系统
-
本文介绍了用于fork新的异步子进程的 C/C++ 分叉系统调用的 Bash 等效项(即子 shell)的介绍性教程。在 Bash 中fork C/C++中的系统调用是创建一个新的进程,即调用进程的子进程。
在 Bash 中继续下一行
发布时间:2023/06/10 浏览次数:161 分类:操作系统
-
这篇简短的文章是关于在 Linux 或 UNIX 中执行 Bash 脚本时对规则的解释。 在进入正题之前,让我们简单介绍一下 Bash 编程。在 Bash 中继续下一行
Bash 中 Syntax Error Near Unexpected Token 错误
发布时间:2023/06/09 浏览次数:67 分类:操作系统
-
本文演示如何识别和更正由于 Bash 脚本中的不可见字符而导致的意外令牌语法错误。Bash 中 Syntax Error Near Unexpected Token 错误 有时,语法上看起来完美无缺的 Bash 脚本不起作用。 你会得到一个模
修复 Bash 中未找到 Mkvirtualenv 命令的错误
发布时间:2023/06/09 浏览次数:102 分类:操作系统
-
本文演示了如何修复 Bash 中的 mkvirtualenv: command not found 错误。修复 bash 中的 mkvirtualenv: command not found 错误 如果你试图在 Python 中创建一个虚拟环境并看到类似这样的东西,
解决在 Bash(或 Cygwin)上找不到 R 命令
发布时间:2023/06/09 浏览次数:84 分类:操作系统
-
本文将帮助您了解错误消息以及如何解决或防止此类错误再次发生。解决bash: '\r': command not found With Notepad++ 不同的操作系统行为不同,Windows 通常是不同的。 如前所述,\r 字符的存在是导致此错
解决 Nodemon Command Not Found
发布时间:2023/06/09 浏览次数:122 分类:操作系统
-
本文将讨论如何解决和处理 nodemon command not found 错误。使用npm解决Nodemon Command Not Found 通过 npm,我们可以安装有用的功能库、包和工具来改进我们在 NodeJS 平台上的开发。
解决在 Cygwin中的错误 Make Command Not Found
发布时间:2023/06/09 浏览次数:190 分类:操作系统
-
本文将讨论处理 bash: make: command not found in Cygwin 的方法。通过安装解决bash: make: command not found in Cygwin
Bash 中的错误处理
发布时间:2023/06/09 浏览次数:134 分类:操作系统
-
本文介绍了 bash 中的错误处理。 请记住,了解退出代码、选项(如 errexit 和 trap)使我们能够构建健壮的脚本并更有效地管理 bash 问题。Bash 中的退出代码 基于退出代码处理错误是检测命令失败
Bash 中 Curl 命令的 Urlencode 数据
发布时间:2023/06/09 浏览次数:175 分类:操作系统
-
本文将教我们如何在 bash 中为 curl 命令对数据进行 urlencode。 让我们从 curl 命令的语法开始。Bash 中的 curl 命令 curl 命令的基本语法如下: