我試圖運行KornShell以下命令(KSH)時,會出現斷開連接我的DB2會話:awk中管道
set -A INDEXES `db2 "describe indexes for table ${TABSCHEMA}.${TABNAME} show detail" | awk '{print $1"."$2}'`
什麼,我試圖做到的,是地方的指標在特定表列表放入一個我可以稍後迭代的數組中。
問題是,當我運行上述命令時,數組的內容以「SQL1024N」(它告訴我數據庫連接不存在)的錯誤消息開始。
但是,如果我刪除awk
在聲明的結尾像這樣:
set -A INDEXES `db2 "describe indexes for table ${TABSCHEMA}.${TABNAME} show detail"`
它工作得很好(當然,在某種程度上它返回的數據顯然沒有awk
我不會捕捉。正確的數據)。
有誰知道爲什麼awk
有這種影響?
我明白有多種方法可以獲取這些數據,但它讓我很困惑,爲什麼會發生這種情況。
在此先感謝。
作爲一個測試,當你在命令行中運行「db2 ... | awk ...」作爲普通命令時會發生什麼?此外,習慣使用$(...)而不是反引號;管理報價要容易得多。由於反引號捕獲輸出(通過文件或管道),因此不清楚管道是否有awk問題。 – 2009-02-05 06:28:38
嗨喬納森 對不起,延遲響應。我剛剛發現了這條評論。 當「db2 | awk」命令在反引號之外運行時,它按預期工作。 – greggannicott 2009-06-22 15:19:57