在函数中使用预定义变量

时间:2017-08-09 11:31:24

标签: bash function variables arguments

执行函数后可以使用预定义变量。 例:

var="host1 host2"
function test {
echo $1
echo $2
}
test var host3

预期结果应为:

host1 host2 
host3

不确定如何使用像本地或其他东西那样定义该变量......

1 个答案:

答案 0 :(得分:3)

您可以在函数中使用间接变量引用

testfn() {
   for v; do
      echo "${!v:-$v}"
   done
}

var="host1 host2"

然后将其称为:

testfn var host3

将打印此输出:

host1 host2
host3

表达式"${!v:-$v}"尝试使用$v中包含的字符串引用变量,如果未设置,则使用$v(这是位置参数字符串)。