在shell脚本中哪个更好,无论是在函数调用中导出变量还是在函数调用中使用echo返回?

时间:2017-08-17 15:30:08

标签: shell sh

在函数中导出变量

func() {  
    export $1=10  
}  
func param  
echo $param  

在函数中回显变量

func() {  
    var=$1  
    var=10  
    echo "$var"  
}  

var=$( func param  )
echo $var

1 个答案:

答案 0 :(得分:0)

第一个是优选的,因为它不涉及启动单独的过程来产生该值。也就是说,您不需要使用export,因为您并不特别需要导出该值。你只需要一个全局变量。使用printf分配给名称作为参数传递的变量。

func () {
    printf -v "$1" '10'
}

请注意,在您的第二次尝试中,参数实际上并未使用。你写的相当于

func () {
    echo 10
}

var=$(func)