在函数awk中声明的局部变量

时间:2012-07-30 07:48:34

标签: shell awk

我正在使用awk。我想模块化我的代码,我想知道在函数内声明的变量是本地的还是全局的。例如

  main script
  update()

  function update()
  {
      array[1]="hi"
  }

我想知道在函数内声明的数组是本地的还是全局的..如果它不是本地的那么..在awk中局部变量的概念是什么。

1 个答案:

答案 0 :(得分:4)

他们是全球性的:

awk 'function update() { array[1]="hi" } BEGIN { update(); print array[1];}'
hi

要使它成为本地的,你需要一个小技巧,将其作为参数传递:

awk 'function update(array) { array[1]="hi" } BEGIN { update(); print array[1];}'