别名与重音符,省略号和更cshell(alias in cshell with grave acce

2019-09-01 12:13发布

我在C壳跨越怪异的行为来:写作以下行的时候,我得到正是我所期望的行为:

    ls -l | grep $USER | somescript `awk -F' ' '{print $1}'`

这意味着 - 它会搜索我拥有的所有项目,并激活“somescript”与他们的第一个字段作为参数。

然而,当我尝试混叠在同一行,但我的卡纸壳(或手了错误的按摩,如果我分开撇号的括号:

    alias doit 'ls -l | grep $USER | somescript `awk -F' ' '{print $1}'`'

将导致要么

{: 没有找到指令

打印:命令未找到

或者干脆不能够因为它被卡住,开始一个新的终端。

任何想法如何可以别名这件事(和类似的东西 - 这只是一个例子),没有杀害我的壳呢?

Answer 1:

欢迎来到那就是地狱csh 。 我不知道这个答案会阻止你杀死自己,但...

% alias doit 'ls -l | grep $USER | somescript `awk -F'"'"' '"'"' '"'"'{print $1}'"'"'`'

结果:

% alias | grep doit
doit    ls -l | grep $USER | somescript `awk -F' ' '{print $1}'`

它基本上是字符串,每次交替报价的串联:

'ls -l | grep $USER | somescript `awk -F'
"'"
' '
"'"
' '
"'"
'{print $1}'
"'"
'`'

(是的,这可以简化,但我想,以示对混叠含单引号的命令一致的,一般程序。)



文章来源: alias in cshell with grave accents, apostrophes and more
标签: shell alias csh