从linux中的函数分配一个局部变量bash一个新的值 [英] assign local variable from function in linux bash a new value

查看:138
本文介绍了从linux中的函数分配一个局部变量bash一个新的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个函数 linux bash 脚本:

  myfunctiona()
{
local MYVAR1 =one
local MYVAR2 =two
echo $ MYVAR1
#下面的行是有问题的行!
本地MYVAR1 = $ MYVAR1 $ MYVAR2
}

当我想给函数 myfunctiona 中的 LOCAL 变量 MYVAR1 一个新值,我必须写
$ b $ $ p $ 本地MYVAR1 = $ MYVAR1 $ MYVAR2

pre>

或者我也可以写

$ 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆