ちょっと前にシェルスクリプトでlsを使っていて、@karupanerura氏に"lsってエイリアス使ってる人多いからシェルスクリプトではあまり使わない方が良いすよ"(意訳)と言われてあーそういえば、思いつつも、エイリアス無効にする方法があった気がしたので、備忘録代わりに残しておく。
zshで試してるのでbashとかでは知らないです。たぶん同じだとは思いますが。
commandを使う
commandをコマンドの前に付けると、コマンドとして定義されているコマンドを実行します。
comannd ls
似たものにbuiltinというのがあってこれはシェルの組み込みコマンドを実行してくれます。
envを使う
元々は環境変数を指定してコマンドを実行するためのコマンドですが、コマンド自体はエイリアスを無視して実行する模様。
man env引いてもなぜaliasでなくコマンド自体を実行するのかちょっと分からなかった。
いずれにしても、素直じゃない使い方な気がする。
env ls
aliasを無効にする
ただ、そもそもaliasが設定されていないときにwarnがでるのがうざったい
unalias ls ls
そもそもaliasを設定しない
うん。
というのは身もふたもないけど、.zshrcに書けばシェルスクリプトとして実行するときには読み込まれないので、そちらに書けば良いと思いまする。
シェルスクリプト実行時に読み込まれるのは.zshenvなのでそこに書かなければ問題ないはず。
前に調べたやつが間違ってなければ、この認識で良いはず。
zshの設定ファイルの読み込み順番のメモ - 目の前には僕らの道がある