如何在 .cshrc 中使用变量创建别名?

如何在 .cshrc 中使用变量创建别名?

例如,我想创建一个别名来删除重复的行:

alias rm.dup  'perl -ne 'print unless $dup{$_}++;''

当源 .cshrc 时,它报告:“dup:未定义的变量。”

如果改成

alias rm.dup  'perl -ne 'print unless \$dup{$_}++;' \!* &'

它报告:“!* &:未找到命令。”

并且也尝试过

alias rm.dup  'perl -ne 'print unless \$dup{$_}++;''

报告:“:未找到命令。”

使用带有别名的变量的一般规则是什么?

答案1

alias rm.dup  'perl -ne '\''print unless $dup{$_}++'\'' \!* &'

由于无法在单引号内嵌入单引号,因此一种方法是突破单引号,插入文字引号,然后重新启动引号。

'perl -ne '\''print unless $dup{$_}++'\'' \!* &'
|---------|B |-----------------------|D |------|
     A                   C                  E

另一种方法是:

alias rm.dup  'perl -ne "print unless "\$"dup{"\$"_}++" \!* &'

相关内容