什么是-s在解释器定义中的意思:!#/ bin / awk -f

时间:2016-05-18 08:53:55

标签: shell unix awk interpreter shebang

解释器定义中-f的含义是什么:#!/bin/awk -f 它是一个awk脚本

3 个答案:

答案 0 :(得分:1)

The -f command line option for awk specifies that the next argument should be the file to read the commands from.

If you omit the -f, the interpreter will try to invoke your script using /bin/awk yourScriptFile which will fail, e.g.:

$ cat yourScriptFile 
#!/bin/awk
{ print $1; }
$ ./yourScriptFile 
awk: cmd. line:1: ./yourScriptFile
awk: cmd. line:1: ^ syntax error
awk: cmd. line:1: ./yourScriptFile
awk: cmd. line:1:   ^ unterminated regexp

See the POSIX documentation for awk (http://pubs.opengroup.org/onlinepubs/009695399/utilities/awk.html) or man 1 awk for details.

答案 1 :(得分:1)

来自AWK man page

-f progfile
     

awk使用从 progfile 中读取的模式集。

这意味着必须在 progfile 中找到该脚本。

答案 2 :(得分:1)

引自man awk

  

-f file程序文本是从文件而不是从命令行读取的。允许多个-f选项。

以下是一个例子:

使用-f filename

给awk一个程序
$ cat script.awk 
{print}
$ awk -f script.awk <<< "abcd"
abcd

或者像这样创建一个awk可执行文件:

$ cat script1.awk 
#!/usr/bin/awk -f
{print}
$ ./script1.awk <<< "abcd"
abcd