我像这样在 ~/.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
引用是痛苦的。