• 本页内容

62. 变量


awk 变量应以字母字符开头, 其余字符可以是数字、字母或下划线。 关键字不能用作 awk 变量名。

与其他编程语言不同,您不需要声明变量即可使用它。 如果您希望初始化 awk 变量,最好在 BEGIN 部分进行,该部分仅执行一次。

Awk 中没有数据类型。 awk 变量是数字还是字符串取决于使用该变量的上下文。

employee-sal.txt 是一个逗号分隔的文件,包含 5 条员工记录,格式如下:

employee-number,employee-name,employee-title,salary

创建文件:

$ vi employee-sal.txt
101,John Doe,CEO,10000
102,Jason Smith,IT Manager,5000
103,Raj Reddy,Sysadmin,4500
104,Anand Ram,Developer,4500
105,Jane Miller,Sales Manager,3000

以下示例演示如何在 awk 脚本中创建和使用您自己的变量。 在此示例中,"total" 是用户定义的 Awk 变量,用于计算公司中所有员工的总工资。

$ cat total-company-salary.awk
BEGIN {
  FS=",";
  total=0;
}
{
  print $2 "'s salary is: " $4;
  total=total+$4
}
END {
  print "---\nTotal company salary = $"total;
}

$ awk -f total-company-salary.awk employee-sal.txt
John Doe's salary is: 10000
Jason Smith's salary is: 5000
Raj Reddy's salary is: 4500
Anand Ram's salary is: 4500
Jane Miller's salary is: 3000
---
Total company salary = $27000