别名不起作用?

别名不起作用?

我像这样在 ~/.cshrc 中创建一个别名

alias bw  "bjobs -w | awk '{print $7}'"

但7美元就不行了。我该如何解决 ?

答案1

尝试看看什么西施已将您的别名定义为,通过在命令提示符处键入以下内容:

%别名体重

bjobs-w| awk '{打印}'

发生了什么? shell 扩展了一个名为 $7 的 shell 变量(该变量恰好什么都没有),并将该 null 值填充到别名定义中。

因此,这本身就提出了一个解决方案,我们需要在 $7 中引用美元,远离 shell 的窥视,以便将其逐字输入到别名的定义中:

% 别名 bw "bjobs -w | awk '{print "\$"7}'"

现在,当我们测试别名是什么时:

%别名体重

bjobs-w| awk '{打印 $7}'

这正是您在命令行中输入的内容!

为了执行别名定义的写入,我们分 3 个步骤执行:

 - The quoting is done by closing the double quotes just before the $ to
            come out of the alias' quoting.
 - Now the $ needs to be escaped via a backslash to stop it from being 
            expanded before the alias takes effect.
 - Start the double quotes to re-enter the alias' quoting.

** 我希望我能用图画的方式画出这个东西,这样理解起来就很简单了。

答案2

尝试:

alias bw 'bjobs -w | awk '\''{print $7}'\'''

csh引用是痛苦的。

相关内容