12章fortuneコマンド

今、私は笑って大儲けしている / 私が拷問したのと同じ者たちから

—— They Might Be Giants, "Kiss Me, Son of God" (1988)

本章では、テキストファイルのデータベースからランダムに選ばれた格言や豆知識、アスキーアート†1を表示するfortuneコマンドのRust版を作成します。このコマンドの名前はフォーチュン・クッキーに由来しています。フォーチュン・クッキーは、「近いうちに、新たな旅の機会が訪れるでしょう」というような占いや、短い冗談や格言が書かれた小さな紙が入っているクッキーです。筆者が学部生時代にUnixターミナルの使い方を学び始めた頃†2は、ターミナルへのログインに成功するとfortuneの出力が表示されたものでした。

[†1] ASCIIアートは、ASCIIに含まれる文字と記号のみを用いた視覚表現技法のことです。

[†2] 1990年代のことです。きっと今の子供たちは「1900年代後半」と呼んでいるのでしょう(笑)。

本章では、以下の内容を学びます。

  • PathPathBuf構造体を使ってシステムパスを表す方法
  • ファイル内の複数行にわたるテキストのレコードを解析する方法
  • ランダム性を利用し、シードで制御する方法
  • OsStr型とOsString型を使ってファイル名を表す方法

12.1 fortuneの動作

まず、fortuneで何ができるかを説明し、実装対象への理解を深めます。fortuneは、ほとんどのシステムではインストールされていないので、その場合はインストールする必要があります†3。次に示すのはマニュアルページの一部で、man fortuneで表示できます。

[†3] Ubuntuでは、 ...

Get Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.