【作業を効率化したい方必見!】ターミナル上のイエスマン:yesコマンド
ターミナル上で作業していると度々対話的に確認される
しかし、たくさんの作業をしているときにこのyesを毎回打つのって面倒ですよね...
私もちまちま"y"とか"yes"とか打ってた一人でした💦
さて、そんな方に朗報です! UNIXコマンドの中には実はイエスマンがいて、確認の度に毎回yesって答えてくれます!
今回の記事ではこのイエスマン、yesコマンドをご紹介します!
(※この記事の内容をご自身で試す場合は自己責任でお願いします)
はじめに
MacでもLinuxでもChromebookでもターミナルを使うことはあります。
単純な作業をしたり、開発環境を整えたり、はたまたコーディングしたりなど様々なことに使われます。
ですが、その作業の中で対話的に確認を行う機会というのは結構あります。
apt-getでパッケージを管理したりするとき、rmで一括にファイルを削除するときなどです。
例えば、apt-getでwgetを削除しようとするときには
$ sudo apt-get purge wget
と叩けばいいのですが、その際には対話的な確認として
Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: wget* 0 upgraded, 0 newly installed, 1 to remove and 19 not upgraded. After this operation, 2,813 kB disk space will be freed. Do you want to continue? [Y/n]
と聞いてきます。もちろん、こんな1つだけの作業なら手で打てばいいじゃんってなりますが、この作業が何千回・何万回も続くとなるとさすがに無理です。というか、私は絶対にやりたくないです💦
ま、rmであれば-fオプションとか、apt-getであれば-yオプションとかつければ自動的にyesと答えてはくれますが...自作のプログラムとかで入力を対話的に与える必要があるって場合も少なからずあるとは思います。
こんな場合に力を発揮するのがUNIXコマンドのイエスマン、yesコマンドです!
yesコマンド
yesコマンドとは、簡単に言ってしまうと、yと答え続けるコマンドです。使い方はいたって簡単で
$ yes
と叩くだけ。これだけで無限に"y"が表示され続けます。(※止めるときはctrl + Cで。)
こんな感じ。
しかも、これだけじゃないんです!
その他にもyesの引数に文字列を与えると、その文字列を無限に出力し続けます。例えば、
$ yes "I am a yesman"
とすると、こんな感じ。
yesコマンドはこのように同じ文字列を出力し続けるコマンドです!
ですが、このyesコマンドどうやって活用したらいいんでしょうか?次にyesコマンドの活用方法をご紹介します!
yesコマンドの使い方
さて、yesコマンドの活用方法についてですが、yes
を単独で使うことはほとんどなく、基本的にはyes
をパイプでつないで使います。具体的にはこうです。
yes | hoge
hoge
の部分は別に何でもよくて、複数のtxtファイルを対話的に消す場合だとrm -i *.txt
などが入ります。実際にyes
を使った場合とそうでない場合を比較すると、yes
を使わなければ
$ rm -i *.txt
rm: remove regular file 'test1.txt'? y rm: remove regular file 'test2.txt'? y
と毎回消すかどうかを確認されますが、yes
を使うと
$ yes | rm -i *.txt
rm: remove regular file 'test1.txt'? rm: remove regular file 'test2.txt'?
として、確認に対して自動的にyesと答えてくれます(yは表示されませんが)!便利でしょ?
さて、この他にも使い方はあります!それはプログラムの対話的な入力に対してyes
を活用する使い方です。
今、対話的に入力を求めるPythonのプログラムを1つ書いてみましょう。
#three_input.py for _ in range(3): x = input() print("input is ", x)
です。これはユーザに対して入力を求めて、その入力を表示するという作業を3回繰り返すだけのプログラムです。
これとyes
を組み合わせると、この通り!
$ yes yesman | python three_input.py
input is yesman input is yesman input is yesman
見事、yesmanというワードを入力が求められる度に回答し、それが表示されています!
まとめ
さて、今回は毎度毎度作業の度に対話的に確認されるのがうっとうしいと思っている方に対して、その確認への回答を自動化する方法をご紹介しました!
それも単純なコマンド、yes
です。
このyes
を活用することでみなさんの作業が少しでも捗ればいいですね!
間違いのご指摘やご意見等ございましたら、ぜひコメントお願いします!また、質問なども歓迎ですので、どんな些細なことでもコメントしていただければ嬉しいです!