yes
何するコマンド?
書き方
yes [オプション] [文字列]
オプション
| オプション | 説明 |
|---|---|
| --help | ヘルプを表示する display this help and exit |
| --version | バージョン情報を表示する output version information and exit |
補足事項
オプションや文字列を指定しないで
yes
を実行すると、画面上にひたすら「y」の文字が表示されます。
y
y
y
y
y
(以下略)
のような感じです。
止めるときは
Ctrlキーを押しながら「c」のキー
を押してください。
上手く止まらなくても、何回かゲシゲシやっていれば、そのうち止まります。
自動表示する文字を指定することも可能です。
例えば
yes n
を実行すると、ひたすら「n」の文字が表示されます。
n
n
n
n
n
(以下略)
のような見た目になります。
指定できるのは1文字だけでは ありません。
複数の文字、つまり、文字列を指定することも可能です。
例えば
yes hoge
を実行すると、ひたすら「hoge」の文字が表示されます。
hoge
hoge
hoge
hoge
hoge
(以下略)
のような見た目になります。
「yes」コマンドの動作は、そんな感じです。
実際の使い方はパイプ(|)を使って他のコマンドに食わせる形になるでしょう。
例えば
yes |【コマンド】
のような形です。
【コマンド】が、実行中に
やっちゃいますか?(y/n)
のような確認メッセージが表示される場合、この確認がすべて飛ばされます。
自動で「y」を入力した扱いになるのです。
具体的な例も挙げておきましょう。
「hoge.txt」がある状態で
rm -i hoge.txt
を実行すると
rm: 通常ファイル `hoge.txt' を削除しますか?
と確認メッセージが表示されて、処理が一旦、止まります。
この状態で「y」を入力すれば、ファイル「hoge.txt」が削除されます。
それを踏まえて
yes | rm -i hoge.txt
を実行すると
rm: 通常ファイル `hoge.txt' を削除しますか?
の確認メッセージは表示されますが、そのまま処理が進みファイルが削除されます。
自動で「y」を入力した扱いになるからです。
このように、コマンド実行中に出てくる
やっちゃいますか?(y/n)
のような確認メッセージを飛ばしたいときに使うコマンドが「yes」コマンドです。
ちなみに、上でも書きましたが、全部「n」で答えたいときは
yes n
です。
yes n | rm -i hoge.txt
を実行すると
rm: 通常ファイル `hoge.txt' を削除しますか?
の確認メッセージは表示されますが、そのまま処理が進みます。
ファイルの削除は行われません。
自動で「n」を入力した扱いになるからです。
私が「yes」コマンドの使い方として思い浮かぶのは、それくらいです。
あとはサーバに負荷をかけたいときに使われたりもするようですが……悪いことはしないでくださいね。
