魅惑の自作シェルの世界
Sat Feb 4 15:43:08 JST 2023 (modified: Tue Mar 7 22:24:30 JST 2023)
views: 874, keywords: rusty_bash, Software Design, 連載
技術評論社Software Designにて2022年12月号より連載中。
記事に出てくる用語集
シェルの用語
- ジョブ: AND/ORリストや単独のパイプラインのこと
- スクリプト: (本連載のみ)シェルスクリプトや端末から読み込んだプログラム。文法上、最上位の単位
- 単語: コマンドやコマンドの引数を表す文字列のこと
- 単純コマンド:
ls -l
など、ひとつのコマンドの名前+複数の引数で構成されるコマンド。対義語は( echo a ; echo b)
やif
、for
などの複合コマンド。 - 複合コマンド:
( echo a ; echo b)
やif
、for
など、複数のコマンドを組み合わせて作られた「コマンド」。パイプラインにつなげられる。
Rustの用語
Option<T>
型: 「なにかデータが1個ある、あるいはない」という状態を表現できる列挙型。列挙子としては、None
とSome(T)
がある。関連関数: たとえば構造体
Abc
があったときに、impl Abc {}
のカッコ内に書く関数。引数にself
がなく、インスタンスのデータは操作できない。サブモジュール: あるモジュールの子供に相当するモジュール。たとえば
feeder.rs
があったら、feeder
ディレクトリの下のソースファイルscanner.rs
をfeeder.rs
でmod scanner;
と読み込むと、scanner
はfeeder
のサブモジュールとなる。ミュータブル: 変数やインスタンスが書き換え可能なこと。
メソッド: たとえば構造体
Abc
があったときに、impl Abc {}
のカッコ内に書く関数状の手続きの一種。引数にself
があり、インスタンスのデータを操作できる。
サンプルコードに関する用語
eat_...
: パーサーの構造体の関連関数で、パースしている要素のサブの要素をインスタンスに取り込むためのもの。
その他用語
- スキャナ: パーサが使う文字列を走査して、意味のある文字列の位置を教える関数
- バイト数: 本連載では8ビットのこと。正確にはオクテット数。