yes
unix / linuxには、デフォルトy
で無限に印刷するコマンドがありますstdout
。その意味は何で、用途は何ですか?
答え1
yesは、応答を要求するすべてのコマンドに肯定的な(または否定的な、例えばyes n)応答を送信するために使用できるため、コマンドは非対話型で実行されます。
yesコマンドはheadコマンドと一緒に使用され、テスト用の大容量ファイルを生成します。
また、yesを使用すると、シングルプロセッサを搭載したシステムでプロセッサ使用率が100%になるため、システムが高負荷をどの程度処理するかをテストすることもできます(マルチプロセッサシステムでは、各プロセッサに対して1つのプロセスを実行する必要があります。 )。たとえば、プロセッサが100%で稼働している場合にシステムの冷却システムが効果的であるかどうかを調べるのに役立ちます。
2006年には、ユーザーのMacBookが断続的なシャットダウン症候群の影響を受けたかどうかをテストする手段としてyesコマンドが宣伝されました。 Mac OSの端末でyesコマンドを2回実行する
ウィキペディアを通して:http://en.wikipedia.org/wiki/Yes_(Unix)
答え2
議論の余地がある部分ですが、私の考えではコマンドラインツールの無効なUIに対する醜い修正は次のとおりです。。
一部のコマンドラインツールには、プロンプトを介してユーザーに質問し、非対話式に実行するオプションがありません。
$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...
問題に対する答えは標準入力から得られるので、この問題を解決する簡単な方法は、文字列を連続的に出力するアプリケーションを使用することy\n
ですyes
。 Unix管路この出力を与えられたコマンドへの入力に送るのに使うことができます。
$ yes | frobnicate
このアプローチの問題の1つは、yes
答える質問を確認する方法がないことです。
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
format device /dev/sda1? (y/n) y
frobnicate file c.txt? (y/n) y
rm -f
より良いソリューション(利用可能な場合)は、またはなどの非対話式で実行する特定のオプションですapt-get -y
。これにより、より多くの情報に基づいてアプリケーションにアクションを作成できます。
答え3
私は、同じ名前の同じファイルを含む複数の.zipファイルを解凍するときにこの機能を使用したいと思います。yes
各ケースで何をしたいのかを尋ねるメッセージが表示されます(ライセンス契約など)。
yes | for z in *.zip; do unzip "$z"; done
答え4
同僚がパスワードを入力するために新しい方法を使用しました。
yes password | passwd