系统相关
首页 > 系统相关> > linux – 在’alias`中加上引号是`CSH`

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\"

和其他人,我怎么能做我的别名?

解决方法:

问题是由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\""

另外,请注意您的cut to call会删除任何单引号(‘),因此您的tr调用不会有太大作用. (编辑我的答案几次,以确保它完全符合您的原始命令.)

标签:linux,alias,csh
来源: https://codeday.me/bug/20190630/1337911.html