Alias

如何在 .cshrc 中使用變數創建別名?

  • July 14, 2017

例如,我想創建一個別名來刪除重複的行:

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

當 source .cshrc 時,它報告:“dup:未定義的變數。”

如果將其更改為

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

它報告:“!* &:找不到命令。”

也試過

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

報告:“:找不到命令。”

使用帶別名的變數的一般規則是什麼?

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{"\$"_}++" \!* &'

引用自:https://unix.stackexchange.com/questions/378440