yesコマンドの使い方
そのまま実行させると、引数の文字列(引数が無ければ「y」)を無限に出力するyesコマンドの使い方を調べてみたところ、多少、無理矢理な使い方を除けば、パイプと併用して、実行時に確認をしてくるコマンドに対して、自動的に「y」(もしくは「n」)を入力させるのに使う、とのこと。
コマンドの名前からして、「全てyes」にする、というのは、由来としても納得のいくものがある。
試しに使ってみると、確かに自動で「y」を送っていることが分かる。
$ touch a b c d $ yes | rm -i a b c d rm: remove 通常の空ファイル `a'? rm: remove 通常の空ファイル `b'? rm: remove 通 常の空ファイル `c'? rm: remove 通常の空ファイル `d'?
rmの場合は-fがあるので、わざわざyesを使うこともないが、下のように、しつこくyes/noを質問してくるものに対して全て「yes」で進めたい場合には役に立つかもしれない。
(注意: これを実行すると、hwmonのセンサを自動で検出し、設定ファイルの上書きまでを問い合わせ無しで行う)
$ yes | sudo sensors-detect
他の使用例としては、カーネル更新後などにvmware製品の設定スクリプトを再実行させる必要が出たときに
$ yes | sudo /opt/vmware/player/bin/vmware-config.pl
のようにすることで、
Would you like to skip networking setup and keep your old settings as they are? (yes/no)
の質問に対して、設定済みのネットワーク設定をスキップするといった使い方ができる。
逆に、「全てno」にしたい場合は
$ yes n | [コマンド]
の形で、「n」を送ればよい。
その他、無理矢理な使い方として紹介されているものに
$ yes | head -n 3 y y y
のように、指定した回数だけ表示してパイプを切り、その出力を使用するというものがある。...のだが、やはり、いい使い方が思いつかない。何かに使えるとしても、他のコマンドで処理をしたほうがよさそう。
参考URL:
(2008/5/12)参考URLに入力検索のページを追加