組み込みコマンドを上書きしてしまった
夜中に見た高須クリニックのCMが頭から離れなかったので、yes
と打つと高須院長のアスキーアートが出るコマンドを作りました。
そのあと先輩から「え、yesコマンド上書きしたの?」と言われて初めてyes
コマンドの存在を知りました。
しかも業務の外部コマンドでyesを使う可能性があるとこのと。
高須院長出して遊んでる場合じゃないと気がつきました。
zshrcからaliasのyesコマンドを消せば良いのですが、せっかくなのでaliasを残した状態で元のビルトインコマンドを実行する方法を調べてみました。
コマンドの優先度はaliasが先
aliasを組んだことによって、僕のシェル環境にはビルトインコマンドとしてのyes
とaliasで作ったyes
が共存しており、優先度を調べてみると、aliasが先であることが分かります。
$ type -a yes
yes is a shell function from /Users/UserName/.zshrc
yes is /usr/bin/yes
shell functionが作ったyesコマンドです。
Commandでalias回避
commandというビルトインコマンドに引数として渡して実行することで、aliasの実行を回避することができます。
$ command yes
y
y
y
y
y
y
y
y
y
...