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

标签 shell awk

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

  main script
  update()

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

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

最佳答案

它们是全局的:

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

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

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

关于shell - 在函数 awk 中声明的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11717336/

相关文章:

linux - 在 shell 脚本中,如何在执行到标准输出(不是标准错误)时回显 shell 命令?

带有 SSH 的 shell 脚本,使用一次性密码连接多台主机

sed 或 awk - 删除模式之间的字符串

perl - 如何在perl脚本中获取shell脚本[环境变量]而不 fork 子shell?

macos - Mac `find` 与 Linux `find` 的区别

linux - 使用 sed 的 Shell 脚本

用于字符串替换和打印匹配和不匹配字符串的 awk 命令

linux - 如何添加和排序文本行的特定行?

linux - 使用 AWK 将 CSV 文件中的值除以某个数字

shell - 精确匹配,前导和尾随特殊字符(包括空格)除外