0

试图弄清楚为什么我的 ~/.bash_aliases 中的这个函数会导致错误。

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

它不断产生相同的文件结尾错误。我似乎看不到我缺少一对 {} 或 "" 标记或任何过于明显的东西。

4

1 回答 1

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不会被 shell 扩展。

于 2012-10-10T10:24:53.520 回答