最近のママ活ならぬシェル活について
Wed Jun 8 21:09:34 JST 2022 (modified: Sat Jun 11 22:24:50 JST 2022)
views: 3153, keywords:日記, Rusty Bash この記事は最終更新日が2年以上前のものです。
最近、妙に忙しくて全然ブログを更新してないんですが、忙しいながらも研究以外の活動もしているので、メモしておきます。
シェルを書いている
「あ?お前の書いているのはシェルスクリプトだろ?」と物議を醸す「シェルを書いている」発言ですが、本当にシェル(bash)を書いてます。BSDライセンスにして、GPLじゃないbashを目指してます。
本日某所で手伝ってと泣きをいれましたが、「あんなぐちゃぐちゃなもの(bash)ちゃんと実装できるの?」とびっくりされました()
— 上田 隆一 (@ryuichiueda) June 8, 2022
いま、自分で使うためにaliasの実装をしてます。#rusty_bashhttps://t.co/EmMlWYGhsi
こういうのって、開発日誌とか言ってこまめにブログとかで説明を書いてチンタラ作るのがいいんですが、短気なので、一気に実装をすすめてます。ただ、bashはやっぱりややこしいのであと数ヶ月はかかりそうです。
何がややこしいかというと引数です。引数というと、たとえば普通は"hoge"
とか'fuge'
、$(ls)
、${PATH}
というようなものを思い浮かべるわけですが、シェルのクオートって、途中から始まってもいいので、ちゃんとシェルを実装しようとすると、echo {~,~ueda}/"aho"'unko'$(echo ${PATH})"${HOME}"
のような凶悪な引数も捌かなければなりません。
で、がんばってbashを真似した結果がこれです・・・。たまたまうまくいっただけかもしれませんが。
この努力を誰か買ってほしい💩
— 上田 隆一 (@ryuichiueda) June 8, 2022
(上の出力が #rusty_bash の出力で、下のが本家bashの出力。)#rusty_bash pic.twitter.com/CajIWopNnP
以前にもC++でオレオレシェルを作ったことがあるんですが、 そのときはパイプラインの実装ばっかりこだわっていたので、引数のバリエーションの凶悪さには気づいてませんでした 。こういうのって、結局自分で実装しないと分かんないですよね・・・。alias
についても、無いとls
の出力に色がつけられないので、パイプより優先度が高いです。これも自分で使ってみないと分からんことでした。
bashの引数については、今度またシェル芸勉強会のLTででも話をしたいと思います。あと、一緒に作ってくれる人募集中です。今後とも、「シェル評論家」ではなく「シェル実践者」であるよう、精進するのみです。
次のシェル芸勉強会
7/2に古巣のUSP研究所で行います。久しぶりのオンサイトで恐る恐るですが、よろしくお願いいたしますー。
echo まだまだ募集中です。 #シェル芸
— 上田 隆一 (@ryuichiueda) June 8, 2022
jus共催 第60回記念帰ってきたシェル芸勉強会 https://t.co/BLtYEwq3q2
「シェル芸勉強会ってなに?」という方は、この動画をご覧ください。(これ見ても分からないという説もある。)
現場からは以上です。