Например, я хочу создать псевдоним для удаления дублирующихся строк:
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."
Каково общее правило использования переменной с псевдонимом?
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{"\$"_}++" \!* &'