UNIX/Linuxの部屋 yesコマンドの使い方

TOP UNIX/Linuxの部屋 UNIX/Linuxコマンド一覧 用語集 新版 由来/読み方辞書 環境変数マニュアル Cシェル変数 システム設定ファイル システムコール・ライブラリ ネットワークプログラミングの基礎知識 クラウドサービス徹底比較・徹底解説




コマンド yes 指定の文字列を表示し続ける。 このエントリーをはてなブックマークに追加

最終更新


UNIX/Linux の yes コマンドは、指定の文字列を永遠に出力し続けるコマンドである。



yes コマンドの基本的な使い方
yes コマンドは、文字列を指定しないと y を永遠に出力し続ける。
% yes
y
y
y
y
:

引数を指定すると、その引数を永遠に出力し続ける。
% yes hoge
hoge
hoge
hoge
:

こんなコマンドの存在意義はあるのか? と思うかもしれないが、一応、ある。

yes コマンドで N 回ループ
シェルスクリプト内で 10 回同じ処理を繰り返す場合:
for i in `yes | head -10`; do
echo $i
done

yes コマンドで連番を生成
シェルスクリプト内で 1〜10 の連番を得たい場合:
for i in `yes "" | cat -n | head -10`; do
echo $i
done

ただしこの目的であれば jot コマンドまたは seq コマンドを使う方が自然 (もし jot か seq が用意されていれば)。

yes コマンドで、すべて yes で答える
延々 yes/no を聞いてくるプログラムに対し、全て y や n と答えたい場合:
% yes | fool-command
⇒ すべて y で答える
% yes n | fool-command
⇒ すべて n で答える

yes コマンドで指定サイズのファイルを生成する
指定サイズのファイルを作成する場合:
% yes "" | head -100 > file.dat
⇒ file.dat のサイズは 100バイト (中身は改行コード)
ほかに mkfile や dd を使う方法もある。
>> Linuxオンラインマニュアル(man) Linux yes(1)
>> FreeBSDオンラインマニュアル(man) FreeBSD yes(1)