是否可以创建一个脚本来提示用户输入一个数字,然后以编程方式用于函数/方法中的参数数量?例如:
echo "Enter Number of arguments: "
read numOfArguments
Run Code Online (Sandbox Code Playgroud)
输入数字后,这将代表函数中参数的数量。因此,如果我输入 5,则调用后该方法中应该有 5 个预期参数:
sampleMethod(){
...Takes 5 Parameters and actual code is here
}
sampleMethod ActualArgumentsfromPrompt
Run Code Online (Sandbox Code Playgroud)
如果可能的话,有人可以提供一个如何完成此操作的示例吗?我这样做是因为我想创建一个脚本来解析日志文件,但我需要从日志中提取与此类似设置的特定项目:(0010,0020)。我需要的信息并不总是固定数量的项目,因此这就是为什么我想生成多个参数的提示。
Bash 函数不“期望”任何数量的参数——正如您从语法中看到的,函数名称后面没有参数变量列表。它们处理参数的方式与主 shell 相同,即通过$1、$2等访问它们。如果您需要知道传递了多少个参数,可以使用$#。
要循环遍历所有参数,常见的习惯用法是处理$1,然后使用shift将参数列表向下移动。
sampleMethod() {
if [ $# -ne $numOfArguments ]
then echo Wrong number of arguments -$numOfArguments expected, $# provided >&2
return
fi
while [ $# -gt 0 ]; do
arg=$1
echo "$arg"
shift
done
}
Run Code Online (Sandbox Code Playgroud)