Shell函数传递参数
James Gosling 人气:0如何传递参数到Shell脚本函数
通常,在其他脚本语言中,您可以将参数和参数作为function_name(parameter1, parameter2,…)传递给函数,这在shell脚本函数中不支持。在shell脚本函数中,您可以在函数调用期间直接传递参数,而无需在函数定义中定义它们的名称,并直接使用位置参数 $1 作为第一个参数, $2 作为第二个参数,以此类推。
在shell脚本中定义函数有两种方法
function function_name { ... }
OR
function_name () { ... }
无论是否传递参数,每个shell脚本函数都必须像上面那样定义。您将注意到,在函数签名中没有指定任何实参。
下面介绍如何调用同一个shell脚本函数
function_name arg1 arg2 ...
正如前面提到的,每个shell脚本函数通过其位置$1、$2等引用参数。$0表示函数的名称。
下面是一个shell脚本函数的例子,它读取第一个参数并回显它。创建一个空的shell脚本,如下所示。
$ sudo vi test_script.sh
向它添加以下行。
#!/usr/bin/env sh test() { echo "Parameter #1 is $1" } test 20
用以下命令运行上面的脚本。
$ sudo ./test_script.sh Parameter #1 is 20
重要的是要记住,只能在函数定义之后调用函数。如果你在定义之前调用它,那么它会给你一个错误。
您还可以调用在shell脚本函数之外定义的变量,并将它们用作参数。在下面的例子中,我们使用了在函数外部定义的变量 $name 作为参数
$ sudo vi test_script.sh
向它添加以下行。
test() { echo hello $name } name="tom" test
用以下命令运行上面的脚本。
$ sudo ./test_script.sh hello tom
在本文中,我们研究了向shell脚本函数传递参数的两种不同方法。
加载全部内容