Как создать псевдоним с переменной в .cshrc?

Например, я хочу создать псевдоним для удаления дублирующихся строк:

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

При исходном .cshrc он сообщает: "dup: Undefined variable."

Если изменить его на

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

Он сообщает: "!* &: Command not found."

А также пробовал

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

Сообщает: ": Command not found."

Каково общее правило использования переменной с псевдонимом?

0
14.07.2017, 14:37
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{"\$"_}++" \!* &'
1
28.01.2020, 04:43

Теги

Похожие вопросы