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

一重引用符の中に一重引用符を挿入できないため、1つの方法は一重引用符を分離し、リテラル引用符を挿入して引用符を再起動することです。

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

別の方法は次のとおりです。

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

おすすめ記事