getline
getline函数获得下一行可能的返回值为:
1 若是可以读取一行。
0 若是到了文件末尾。
-1 若是遇到错误。
从文件中读取
getline函数除了能读取正常的输入流外,还能够从文件或管道中读取。
while((getline<"filepath")>0)
print
将输入赋给一个变量
读取下一行并赋值给变量input:
getline input
从管道读取输入
执行一个命令并将结果用管道输送到getline。
"who am i"|getline
当一个命令的输出结果被用管道输送给getline且包含多个行时,必须建立一个循环来执行getline。
while("who"|getline)
who_out[++i]=$0bash
获取用户标准输入函数
1.getline<"-"spa
2.getline<"/dev/tty"get
例子:input
awk 'BEGIN{printf "Enter your name:";getline<"-";print}'
三个$1
#!/bin/bash
filename:awk_whoami.sh
awk '
BEGIN{"who am i"|getline
name=$1
FS=":"
}
name ~ $1{print $5}
' $1
第一个$1:getline读取下一行将其赋给$0,故$1指新输入行的$1。
第二个$1:指第三个$1中的且与name匹配的某一行的$1。
第三个$1:指脚本后的参数,如./awk_whoami.sh /etc/passwd,故此$1指/etc/passwd。
awk