2012-10-10 70 views
0

我的頭髮出來試圖找出爲什麼我的〜/ .bash_aliases中的這個函數導致錯誤。在base_aliases函數中獲取文件的意外結束

function kill-xbmc() { xbmcpid=`ps aux | grep "[x]bmc" | awk "{printf "%s ",$2}"`; kill -9 ${xbmcpid} } 

它使生產文件錯誤的同一端。我似乎無法看到我缺少一對{}或「」標記或任何過分明顯的標記。

回答

3

試試這個:

function kill-xbmc() { xbmcpid=`ps aux | grep "[x]bmc" | awk '{printf "%s ",$2}'`; kill -9 ${xbmcpid}; } 

函數中的最後一條語句不是用;結束,以便收盤}被作爲最後一個發言的一部分。假定腳本的其餘行是該函數的一部分,因此在沒有找到匹配的大括號時會出現「文件意外結束」錯誤。

我也更改了你的awk參數的引用。您爲嵌套引號使用了相同的引號字符,因此字符串被提前終止。

awk "{printf "%s ",$2}" 
    --------- | ------ 
     |  |  | 
     s1  | s2 
       | 
     %s outside string 

請注意,我用了外部的單引號,以確保$2不被外殼擴展。

+0

作品一個款待和詳細的解釋是非常有意義的。這就是爲什麼我喜歡stackoverflow是多麼有用! – juliushibert