LoginSignup
0

More than 5 years have passed since last update.

高須院長のAAを出すコマンドを作って遊んだらyesコマンドが組み込みコマンドだった話

Last updated at Posted at 2019-01-25

組み込みコマンドを上書きしてしまった

夜中に見た高須クリニックのCMが頭から離れなかったので、yesと打つと高須院長のアスキーアートが出るコマンドを作りました。

takasu_qiita.mov.gif

そのあと先輩から「え、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
...

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0