awk命令的别名 - 引用太多

时间:2014-10-02 19:17:02

标签: linux bash shell awk

可能在这里遗漏了一些简单的东西,但我不是shell脚本专家。

我有一个完美的本地命令。

tail -f /path/to/file | awk '
  /INFO/ {print "\033[32m" $0 "\033[39m"}
  /ERROR/ {print "\033[31m" $0 "\033[39m"} 
  /WARNING/ {print "\033[33m" $0 "\033[39m"}
'

如果我将ssh插入我的盒子并将其粘贴,它就能正常工作。但我似乎不能为它添加别名,因为它已经使用了两种引号,因此alias='...'将不起作用。我也试过把它变成一个函数:

function tailMyFile {
    tail -f /path/to/file | awk '
    /INFO/ {print "\033[32m" $0 "\033[39m"}
    /ERROR/ {print "\033[31m" $0 "\033[39m"} 
    /WARNING/ {print "\033[33m" $0 "\033[39m"}'; 
}

告诉我:-bash: /INFO/: No such file or directory

1 个答案:

答案 0 :(得分:1)

尝试这种函数声明方式:

tailMyFile() {
    tail -f /path/to/file | awk '
    /INFO/ {print "\033[32m" $0 "\033[39m"}
    /ERROR/ {print "\033[31m" $0 "\033[39m"} 
    /WARNING/ {print "\033[33m" $0 "\033[39m"}'; 
}

但是,似乎您的错误与定义函数的方式无关,但是您的/ INFO /目录是否正确显示,您可以cd /INFO没有任何问题吗?