2012-02-13 51 views
1

BEGINEND在我非常簡單的腳本中導致語法錯誤。BEGIN和END導致gawk中的語法錯誤

劇本的大致輪廓是:

args=("$0") 
gawk -v var=0 '{ 
*do stuff based on input file 
*stuff gets assigned to var 
*END{ print var} 
}' ${args[0]} 

我碰到下面的錯誤,我不知道爲什麼:

gawk: cmd. line:x: END { ... } 
gawk: cmd. line:x: ^syntax error 

編輯: 所以亞當利斯是正確的!我的花括號出錯了。

我基本上做的是徒勞無功的{腳本END {東西}}'時,我應該已經做徒勞無功{}腳本END {}東西「

感謝亞當!

+1

我認爲我們將要看看你的「*基於輸入文件做的東西」,或精簡版仍然爲您提供了同樣的錯誤。 – 2012-02-13 00:32:20

+0

如果您發佈演示問題的真實腳本,您很可能會得到更好的答案。 (它不一定是*你的實際腳本,但它必須是可以運行的東西。) – ruakh 2012-02-13 00:33:00

+1

我不認爲你想把整個腳本放在大括號內。 – 2012-02-13 00:33:38

回答

2

這可能會爲你工作:

args=("$0") 
gawk -v var=0 '{ 
#do stuff based on input file 
#stuff gets assigned to var 
} 
END{ print var}' ${args[0]}