Linux コマンドはエイリアスとして使用できません。

Linux コマンドはエイリアスとして使用できません。

サーバーの各ユーザーのセッション数を計算するコマンドを作成しました。これは:

who | awk '{ print $1}' | sort | uniq -c | sort

これはうまく機能しますが、サーバーのエイリアスに移動すると戻りますwho

alias who_con="who | awk '{ print $1}' | sort | uniq -c | sort";

二重引用符かもしれないと思って一重引用符で囲みようとしましたが、同じ動作が発生しました。

alias who_con='who | awk "{ print $1}" | sort | uniq -c | sort';

答え1

ドルを脱出する必要があります$1

$ alias wW="who | awk '{ print \$1}' | sort | uniq -c | sort"
$ wW
      1 tomasz

$1シェルではなくawkに拡張する必要があります。追加のエスケープがない場合は、シェルによって拡張されます。別の次元の脱出が必要です。これも次のことを行います。

$ alias who_con='who | awk "{ print \$1}" | sort | uniq -c | sort';
$ who_con
      1 tomasz

関連情報