例如,我想创建一个别名来删除重复的行:
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{"\$"_}++" \!* &'