unix中函数的变量范围

时间:2017-03-18 00:52:20

标签: bash unix

我在Ubuntu Shell工作,但我也希望它也适用于UNIX 这是我的代码:

#!/bin/bash

func()
{
    x=42
}

x=9
func
echo $x
  • 当我仅更改本地变量x
  • 时,为什么全局x更改为42
  • unix是否适用于变量范围的不同规则?
  • 是否有一种方法如何将返回值从func设置为全局变量,以后可以在代码中使用?

谢谢!

1 个答案:

答案 0 :(得分:0)

首先,你没有编程Linux;你实际上正在为shell程序编写一个名为bash的函数。在命令行中输入 public static void main(String args[]) { LinkedBSTree l = new LinkedBSTree(); String fileName = "file.txt"; try{ BufferedReader br = new BufferedReader(new FileReader(fruitFile)); String line; while ((line = br.readLine()) != null) { String[] item = line.split(" "); l.insert(item[0], Float.parseFloat(item[1])); } } catch(IOException e){ e.printStackTrace(); } l.printInOrder(); } 以获取相关文档。对于任何版本的Unix,命令行上发生的事情取决于您运行的shell类型(有很多; info bash是大多数Linux系统的默认设置。)

默认情况下,未声明的函数中的变量是全局变量。如评论所述,您可以使用bash将变量标记为函数的本地变量。