从linux中的函数分配一个局部变量bash一个新的值 [英] assign local variable from function in linux bash a new value
本文介绍了从linux中的函数分配一个局部变量bash一个新的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个函数 linux bash
脚本:
myfunctiona()
{
local MYVAR1 =one
local MYVAR2 =two
echo $ MYVAR1
#下面的行是有问题的行!
本地MYVAR1 = $ MYVAR1 $ MYVAR2
}
当我想给函数 myfunctiona
中的 LOCAL
变量 MYVAR1
一个新值,我必须写
$ b $ $ p $ 本地MYVAR1 = $ MYVAR1 $ MYVAR2
或者我也可以写
$ p $ MYVAR1 = $ MYVAR1 $ MYVAR2
在第二行没有local的情况下,我是否创建了一个具有相同名称的全局变量? / p>
解决方案
一旦你定义了一个局部变量,你可以像这样正常分配它:
#!/ bin / bash
myfunctiona()
{
local MYVAR1 =one
本地MYVAR2 =两
echo $ MYVAR1
#下面的行是有问题的行!
local MYVAR1 = $ MYVAR1 $ MYVAR2
MYVAR1 =FOO
echo $ MYVAR1
}
myfunctiona
echoglobal$ MYVAR1
给出结果:
一个
FOO
全球
- 正如您所见,试图从全局范围访问变量返回null
HTH
I have a linux bash
script with a function:
myfunctiona ()
{
local MYVAR1="one"
local MYVAR2="two"
echo $MYVAR1
# The line beneath is the line in question!
local MYVAR1=$MYVAR1$MYVAR2
}
When I want to give the LOCAL
variable MYVAR1
in the function myfunctiona
a new value, do I have to write
local MYVAR1=$MYVAR1$MYVAR2
or can I also write
MYVAR1=$MYVAR1$MYVAR2
With the second line without "local" do I create a global variable with the same name?
解决方案
Once you've defined a local variable you can assign it normally, like this:
#!/bin/bash
myfunctiona ()
{
local MYVAR1="one"
local MYVAR2="two"
echo $MYVAR1
# The line beneath is the line in question!
local MYVAR1=$MYVAR1$MYVAR2
MYVAR1="FOO"
echo $MYVAR1
}
myfunctiona
echo "global" $MYVAR1
which gives the output:
one
FOO
global
- As you can see attempting to access the variable from global scope returns null
HTH
这篇关于从linux中的函数分配一个局部变量bash一个新的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文