本小節中描述如何將AWK程式直接寫在 shell script 之中. 此後 使用者執行 AWK 程式時, 就不需要每次都鍵入
`` awk -f program datafile'' script 中還可包含其它 Shell 命令, 如此更可增加執行過程的自動化.建立一個簡單的AWK程式 mydump.awk, 如下 : {print} 這個程式執行時會把資料檔的內容 print 到螢幕上( 與cat功用類似 ). print 之後未接任何參數時, 表示 ``print $0''. 若欲執行該AWK程式, 來印出檔案 today_rpt1 及 today_rpt2 的內容時, 必須於 UNIX 的命令列上執行下列命令 :
例如: 未存在檔案"file_no_exist", 則執行 : awk -f dump.awk file_no_exit 將產生Runtime Error(無法開啟檔案). 但某些AWK程式 ``僅'' 包含以 BEGIN 為Pattern的指令. 執行這種 AWK程式時, AWK並不須開啟任何資料檔.此時命令列上若指定 一個不存在的資料檔,並不會產生 ``無法開啟檔案''的錯誤.(事實上 AWK並未開啟該檔案) 例如執行: awk 'BEGIN {print "Hello,World!!"} ' file_no_exist 該程式中僅包含以 BEGIN 為 Pattern 之 Pattern {actions}, AWK 執行時並不會開啟任何資料檔; 故不會因不存在檔案file_no_exit而 產生 `` 無法開啟檔案''的錯誤.
若執行AWK的命令列上 ``未指定任何資料檔檔名'', 則將stdin視為 輸入之資料來源, 直到輸入end of file( Ctrl-D )為止. 讀者可以下列程式自行測試, 執行如下命令 : $awk -f dump.awk (未接任何資料檔檔名) 或 $ mydisplay (未接任何資料檔檔名) 將會發現 : 此後鍵入的任何資料將逐行複印一份於螢幕上. 這情況 不是機器當機 ! 是因為AWK程式正處於執行中. 它正按程式指示, 將讀取資料並重新dump一次; 只因執行時未指定資料檔檔名, 故AWK 便以stdin(鍵盤上的輸入)為資料來源.
讀者可利用這個特點, 設計可與AWK程式interactive talk的程式.