我有简单的bash脚本:
#!/bin/sh
column=${1:-1}
awk ' {colawk='$column'+2; print $colawk}'
awk '(x=4; print $x)'
但我收到了错误:
awk: (x=4; print $x)
awk: ^ syntax error
awk: cmd. line:1: (x=4; print $x)
awk: cmd. line:1: ^ unexpected newline or end of string
为什么呢?上一行中的代码有效。
答案 0 :(得分:5)
AWK程序是一系列模式操作对,写为:
condition { action }
其中condition
通常是表达式,action
是一系列命令。
print
不是表达式而是声明,所以它是语法错误符合预期。
答案 1 :(得分:2)
您的问题是使用括号而不是大括号。尝试:
awk '{x=4; print $x}'
相反,如下面的记录:
pax$ echo a b c d e | awk '(x=4; print $x)'
awk: cmd. line:1: (x=4; print $x)
awk: cmd. line:1: ^ syntax error
awk: cmd. line:2: (x=4; print $x)
awk: cmd. line:2: ^ unexpected newline or end of string
pax$ echo a b c d e | awk '{x=4; print $x}'
d