解析函数参数的目的是什么?
问题描述:
如果我做解析函数参数的目的是什么?
#!/bin/bash
a=2
func() {
echo $a
echo $b
}
b=3
func $b
然后打印2\n3
,在那里我会只3
预期。
问题
当全局可用的内部功能。在BASH中解析参数的目的是什么?
答
您将参数传递给函数,以便它们可以使用不同的参数值。
您的代码没有使用传递的参数,而是使用全局变量。考虑替代:
#!/bin/bash
a=2
b=3
func() {
echo $1
}
func ${a}
func ${b}
产量:
2
3
答
击不喜欢这个工作。 你没有在函数中使用任何参数。相反,你刚刚初始化了两个全局变量,你稍后在函数中回应。
为了做你需要,你应该做什么以下几点:
#!/bin/bash
a=2
func() {
# first argument
echo $1
# second argument
echo $2
}
b=3
func $b
func $a $b
输出:
3
2
3
功能之外声明的变量将永远是全球性的。 – devnull 2013-04-08 13:10:46