在“别名”中加上引号是“CSH”

时间:2011-07-27 15:32:52

标签: linux alias csh

我想要一个执行fallowing命令的别名:

zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut -d"'" -f2,4 | tr "'" "\t"

我尝试过不同的方法将它放到别名中,但它们似乎都没有用。 例如,我的一些尝试:

alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut \"\'\" -f2,4 | tr \"\'\" \"\\t\""
alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut \"\'\" -f2,4 | tr \"\'\" \"\\t\"

和其他人,我如何制作别名?

1 个答案:

答案 0 :(得分:3)

问题是由csh功能引起的:如果你已经在一个“引用的字符串中,你就无法逃脱”(它与'相同)。由于兼容性问题,这仍然是默认设置。您可以使用saner shell或使用backslash_quote配置:

set backslash_quote
alias get_failed "zgrep 'failed at' $PWD/RESULTS/log_dir/* | cut -d\"'\" -f 2,4 | tr \"'\" \"\\t\""

另外,请注意您的切换调用会删除任何单引号('),因此您的tr调用不会做太多。 (编辑我的答案几次,以确保它完全符合你原来的命令。)