= 俺のエイリアスを越えてゆけ
[2011-12-05 09:52:38]
最近いろいろエイリアスを書いてます.
たまにミスります.エイリアス内でループして怒られたり,オプション取られへんくなって使い物にならんかったり.
失敗例
alias ls='ls -G --color 2>/dev/null||ls -G'
MacとLinuxでlsを色付けるオプションが違うのよ.設定ファイルは使い回したいし.
そんでこのエイリアスでいけたとおもったら,--colorがある環境ではオプションを渡せなくなった.結局function書きました.
lsをfunctionで
こんな感じで対応しました.
エイリアスを越える
上のfunction書いてるときに
#!/bin/zsh function ls(){ ls -G --color $@ 2>/dev/null||ls -G $@ }
とかやっちゃってまー無限ループのような.ね.
[追記]コメント欄で教えてもらいました.
command ls
これで直接呼び出せました.
以下whereとかwhichの話...
[追記終わり]
エイリアスとかfunctionで同じ名前のを探すのはwhichだろうと思ってたらfunctionとかaliasの内容しか教えてくれなかったので,
@peccul man bash とか man zshbuiltins でどうですか?
2011-12-02 15:54:20 via earthquake.gem to @peccul
と教えていただいた
man zshbuiltins
でビルトインコマンドのmanを見てwhichはwhence -cと同じと知りまして,あとwhereはwhence -caでパスも出力するしwhence -pでパスだけの出力になるしいい感じ.
% which ls ls () { $myls -G --color $@ 2> /dev/null || $myls -G $@ } /Users/peccu% where ls ls () { $myls -G --color $@ 2> /dev/null || $myls -G $@ } /bin/ls /Users/peccu% whence -ca ls ls () { $myls -G --color $@ 2> /dev/null || $myls -G $@ } /bin/ls /Users/peccu% whence -cap ls /bin/ls /Users/peccu% whence -p ls /bin/ls /Users/peccu% where -p ls /bin/ls /Users/peccu% which -p ls /bin/ls
まーこんな感じでaliasは越えられますね.