[英]Using FILENAME in awk script
#!/usr/bin/awk -f
{if(!FILENAME) {print "<Gasp.sh> <inputfile>"; exit} calc = 0;....}
我試圖在我的awk腳本中打印出一個用法語句,所以如果腳本在沒有輸入文件的情況下運行,它會顯示用法。 這是我的嘗試,但我假設我沒有正確使用FILENAME
變量。 我也嘗試將if語句放在BEGIN
和END
塊中但沒有任何效果。
BEGIN{if (ARGC!=2) {print "<Gasp.sh> <inputfile>"; exit} {calc = 0;....}
請改用ARGC
;
BEGIN {
if(ARGC==1) {
print "<Gasp.sh> <inputfile>"
exit
}
calc = 0
# ...
}
編輯:不幸的是@shaikisiegal刪除了他的答案,所以我將在這里添加GNU awk文檔部分內置變量的引用:
FILENAME這是awk當前正在讀取的文件的名稱。 當命令行中沒有列出數據文件時,awk從標准輸入讀取,並且FILENAME設置為“ - ”。 每次讀取新文件時都會更改FILENAME(請參閱讀取輸入文件一節)。 在BEGIN規則中,FILENAME的值為“”,因為尚未處理任何輸入文件。
Unix awk的一些早期實現將FILENAME初始化為“ - ”,即使有數據文件需要處理。 此行為不正確,不應依賴於您的程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.