/usr/bin/time を呼び出す前にエイリアスを拡張する

/usr/bin/time を呼び出す前にエイリアスを拡張する

シェル内蔵機能をtime使用すると。time/usr/bin/time/usr/bin/time

$ /usr/bin/time ll
/usr/bin/time: cannot run ll: No such file or directory

llエイリアスを渡す前に、エイリアスを拡張するためにシェルをどのように説得できますか/usr/bin/time?構文解析の結果は、alias ll特にエイリアス定義に他のエイリアスが含まれているため、難しいです。


私が使用する理由は/usr/bin/time測定のためです。最大メモリ使用量

ベストアンサー1

エイリアスは次のように定義できます/usr/bin/time

alias 'ubtime=/usr/bin/time '

または

alias 'ubtime=command time '

time実行可能ファイルのパスをハードコードしたくない場合。

トリックはエイリアス定義の末尾の空白で、エイリアスを後ろに置き換える必要があることをシェルに伝えます。

ubtime ll

実際には次に拡張されます。

/usr/bin/time ls -l

llはいと仮定ls -l)。

それにもかかわらず、スタンドアロン/usr/bin/time実行可能ファイルとしてパイプ、複合コマンド、関数、またはシェルの組み込み時間を測定できないため、任意のエイリアス拡張時間を測定できません。

/usr/bin/timeキー入力出力形式よりもデフォルトの出力形式を好むため、使用する場合はtime多くのシェルでこの形式を変更できます。たとえば、次のようになりますzsh

$ TIMEFMT=$'\e[31;1m%J\e[m: U:%U S:%S (%*E total) [avgtext:%X avgdata:%D maxmem:%M]'
$ time ls -l | head -n1
total 288072444
ls -l: U:0.00s S:0.01s (0.017 total) [avgtext:0 avgdata:0 maxmem:3]
head -n1: U:0.00s S:0.00s (0.015 total) [avgtext:0 avgdata:0 maxmem:3]

\e[31;1mカラー(太い赤)出力の場合)。

おすすめ記事