2017-08-09 140 views
0

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

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

预期结果应该是:

host1 host2 
host3 

不知道怎么使用定义的变量像本地或其他什么东西......

+1

'test“$ var”host3' ?? – Anubis

回答

3

你可以有这样的代码你带间接变量参考的功能

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

var="host1 host2" 

然后称之为:

testfn var host3 

它将打印该输出:

host1 host2 
host3 

表达"${!v:-$v}"试图引用变量与包含在$v的字符串,如果没有设置它,然后使用$v(其为位置参数字符串)。

+3

也许你是对的。我张贴它的情况下,OP需要它的方式显示的问题。 – anubhava

+1

我刚刚删除了我的答案,使这个事实上! – Inian

+0

@Inian不,你应该保持你的答案,因为这很简单,它可能会解决OP的问题。 – anubhava