episode8「DADA」
僕の”尊厳”を賭けた戦いは、スーの協力もあって阻止することができた。
「仕方ないにゃ〜」
キャットさんは残念そうに、libエリアの一角に転がっていたホワイトボードを用いて説明を始めた。
「似たようなものも含めて、組み込みコマンドは全部で75個あるにゃ。”helpコマンド”を叩いてみると、その一覧がわかるにゃよ」
僕は「`help`」と唱えてみた。すると……
> job_spec [&]
> (( expression ))
> . filename [arguments]
> :
視界に英語で書かれたコマンドの一覧が表示された。
「それが組み込みコマンドの一覧にゃ。全部覚えるのが一番にゃけど、なあなあにして欲しくないのはこれくらいかにゃ〜」
キャットさんはホワイトボードに次のように書いた。
- cd
- for, while
- function
- &, jobs, kill
「この中で一番使うのがcdコマンド、別名チェンジ・ディレクトリ・コマンドにゃ。エックス・ワールドの空間単位である”ディレクトリ”を指定することで瞬間移動することができるにゃ。接近戦を得意とする人たちは、みんな使ってるにゃよ」
(「にゃ」気になるな……)でも、口に出さなかった。
「cdコマンドを使いこなすためにはディレクトリの距離感を知る必要があるにゃ。車掌くんはディレクトリについては知ってるかにゃ?」
「は、はい。一辺が1メートルの立方体ですよね」
「その通りにゃ。ディレクトリは他のゲームで言うところの”xyz座標”に近いにゃね。ディレクトリの指定の仕方も`[x y z]`で指定するにゃ。たとえば、ここから3メートル先に移動したいときは……`cd [~3 ~ ~]`」
キャットさんがcdコマンドを唱えると、瞬時に3メートル離れた場所に移動した。
「こんな感じにゃ」
歩いて戻ってくるキャットにスーが手を挙げる。
「座標を決める目安はどうしてるのでしょうか?」
「理想は行きたい場所までの距離を目算することにゃ。もちろん、すぐにはできないから特訓が必要にゃけど……手っ取り早いのは、自分の体の中でどこが1メートルかを知っておくことにゃ」
「どこが1メートルか……」僕は自分の体を見た。
「そうにゃ。たとえば、ボクは左腕の付け根から右手の中指までの距離がほぼ1メートルにゃ。これを意識して距離を決めて、あとは試行錯誤を続けたら身に付くにゃよ。車掌くんの場合はどうかにゃ〜。ちょっと立って両手を広げて見せてにゃ」
僕は言われるがまま立ち上がって両手を広げた。
1秒もかからずに彼女は言った。
「車掌くんはつま先からベルトまでが1メートルにゃね。参考にしてみてにゃ」
「あ、ありがとうございます」
あまりの速さに僕はお礼を言ってしまった。ムーブ先輩が”組み込みコマンドを一番使いこなせている人”というだけある。語尾は気になるけど……。
僕は忘れないように、ディスコードの”メモ”機能に自分の体を描き、つま先から腰までの距離を1メートルとメモした。
「次は”for”コマンドと”while”コマンドにゃ。どちらもコマンドを繰り返せる点は同じにゃけれど、大雑把な違いとしては、forコマンドは実行する回数を指定して、whileコマンドは条件を満たすまでコマンドを実行し続ける、ってところかにゃ。ひとまずはそこを理解しておけば大丈夫にゃ。…………」
メモメモ。
forコマンド:回数を指定してコマンドを繰り返す。例)`for i in {1..10}; do コマンド; done`←コマンドを10回繰り返す。
whileコマンド:条件を満たすまでコマンドを繰り返す。例)`while [-e *bullet*.obj]; do コマンド; done`←正規表現「*bullet*.obj」が存在する限り、コマンドを実行し続ける。(*は任意の0文字以上)
「次にfunctionコマンドにゃ。forコマンドやwhileコマンドは汎用性が高い反面、書き方が複雑という欠点もあるにゃ。それをまとめてくれるのがfunctionコマンドにゃ。…………」
メモメモ。
functionコマンド:複雑な処理を記したコマンドをあらかじめ登録しておく。必殺技みたいな。
「最後は&コマンド、jobsコマンド、killコマンドにゃ。…………」
メモメモ。
&コマンド:処理の長いコマンドを実行した状態で、別のコマンドを実行できる。&コマンドが付与されたコマンドは視認できない←slと相性良さそう!
jobsコマンド:&コマンド含めて、現在実行されているコマンドを視認することができる←対策はされそう;;
killコマンド:特定のコマンドの処理を強制的に止めることができる。処理の長いコマンドに効果的だけど、メモリの消費は激しい←超天敵!!
「だいたいこんなもんかにゃ〜。みんなついてこれたかにゃ?」
「素晴らしい講義でした。他のデビアンの方にもお見せしたいくらいです」
副司令官のスーは体育座りしたまま拍手した。
「私は、天才肌〜♪」
ムーブ先輩は「複雑なwhileコマンドを瞬時に唱えられるなんて、天才だ」とキャットさんに言われて上機嫌だった。キャットさんの話を聞いて、僕も先輩の凄さがわかった。カレントディレクトリ(自分がいる空間)内にある銃弾オブジェクトを全て別の場所に移動させるコマンドを感覚で作り上げるなんて、僕には絶対できない。
一方の僕は頭が飽和状態になっていた。一つのコマンドでも奥深いのに、これが75個も。”オリジナル・コマンド”と組み合わせたら76個もある。覚えるだけで一生かかってしまいそうだった。
「まあ、わからなければhelpコマンドに書かれてるから、暇なときに読んでおくといいにゃ」
ホワイトボードの板書を消すキャットさんを見て、ふと、ある疑問が浮かんだ。
「どうして……」