2章echoコマンド

あなたがこのメモを手にする頃には / 私たちはもう生きていない /

私たちはみんな煙の中に消えてしまう / 返事のしようがない

—— They Might Be Giants, "By the Time You Get This" (2018)

1章 イントロダクション」では、引数を受け取らず、常に同じ出力をする3つのプログラム(hellotruefalse)を書きました。本章では、コマンドラインから引数を受け取り、プログラムの動作を実行時に変更する方法を紹介します。コマンドとしては、echoのクローンを作成します。このクローンは、コマンドラインから受け取った引数を表示し、必要に応じて、末尾の改行の有無を制御できます。

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

  • clapクレートを用いたコマンドライン引数の処理
  • 文字列、ベクタ、スライス、ユニット型などのRustの型の使い方
  • matchifreturnなどの使い方
  • Optionを用いて、存在するかわからない値を表す方法
  • ResultのバリアントであるOkErrを用いたエラー処理
  • スタックメモリとヒープメモリの違い
  • 標準出力と標準エラーに出力されるテキストのテスト方法

2.1 echoの動作

本書では、Rustを使ってUnixコマンドを書いていきます。そこで、各章の冒頭で、そのコマンドでできることを説明し、新しく作るプログラムについて理解を深めます。そこで説明する内容は、後でテストを書くときにも役立ちます。本章では、echoのRust版を作ります。まずは、echoに引数を渡して、それを標準出力に表示してみましょう。

$ echo Hello 
Hello

ここではシェルとしてbashを使いますが、

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.