[root@mylinux ap]# vi 8.12awkexample
1 #!/bin/awk -f //这一行是让内核分析其解释器是awk,而awk却不会执行这一行
2 BEGIN {
3 for (i = 0; i < ARGC; i++)
4 printf "ARGV[%d] = %s\n", i , ARGV[i]
5 exit
6 }
[root@mylinux ap]# chmod u+x 8.12awkexample //让脚本能够执行
[root@mylinux ap]# ./8.12awkexample f1 f2 //相对
ARGV[0] = awk
ARGV[1] = f1
ARGV[2] = f2
[root@mylinux ap]# /bin/awk -f /root/ap/8.12awkexample f1 f2 //绝对
ARGV[0] = awk
ARGV[1] = f1
ARGV[2] = f2
[root@mylinux ap]# vi 8.12awkexample
1 BEGIN { //删除了指示解释器的那一行
2 for (i = 0; i < ARGC; i++)
3 printf "ARGV[%d] = %s\n", i , ARGV[i]
4 exit
5 }
[root@mylinux ap]# /bin/awk -f /root/ap/8.12awkexample f1 f2 //绝对路径,成功
ARGV[0] = awk
ARGV[1] = f1
ARGV[2] = f2
[root@mylinux ap]# ./8.12awkexample f1 f2 //相对路径,失败 ,因为内核不知道这是什么程序的脚本
./8.12awkexample: line 1: BEGIN: command not found
./8.12awkexample: line 2: syntax error near unexpected token `('
./8.12awkexample: line 2: ` for (i = 0; i < ARGC; i++)'