Software Design9月号自作シェルの世界
Sat Aug 19 21:42:57 JST 2023 (modified: Sat Aug 19 21:47:35 JST 2023)
views: 1901, keywords:自作シェル, bash, 連載, Software Design この記事は最終更新日が1年以上前のものです。
Software Design 9月号が発売されました。自分の連載「魅惑の自作シェルの世界」が載ってます。・・・と、いつもブログがこの程度の情報量で終わってるような気がするので、今回は真面目に記事の説明をします。
「魅惑の自作シェルの世界」もちろん今月も載っています!(Software Design 2023年9月号)
— SoftwareDesign (@gihyosd) August 18, 2023
前号につづき、パイプライン処理を実装していきます。https://t.co/Vtpd0ebk9v https://t.co/lfY8PiGwku pic.twitter.com/r9jS9iPdhK
どんな連載か
Rustを使ってBashのクローンを作るという内容です。Rustをちょっと触ってみたい人にはシェルが題材になり、自作シェルに興味のある人は、シェルの実装のしかた(文法やOSとのやりとり)をチェックできるということで、ぜひ読んでみたい連載です!(主観)
自作シェルのコードについては連載が進むにしたがって増えて複雑になっていくわけですが、途中からでも参入できるように、全段階でのコードがGitHubのブランチに保存されています。初めて読む人でも、その回の開始の時点でのブランチを取り出して、そこにコードを足して挙動を試して遊べる工夫をしてあります。とりあえず写経でオッケーで、しかもシェルに機能を付け足すという高度なことができるので、満足度は高いんじゃないかと思ってます。
使っている言語のRustについては、自身はベタな書き方しかしませんし、できません。かえって初めての人にはいいかなと思ってます(達人がよい先生とは限らないという話もありますし)。Rustの話でよく語られるまだライフタイム付きの変数も、ジェネリックスも今のところ不使用です。(トレイトはやむなく使っていますが。)
今月の内容
今月はざっとこんな感じで盛りだくさんです。
- コードにコメントを入れられるようにする
- コードの途中でバックスラッシュで改行を入れられるようにする
- 改行を入れたパイプラインを解釈して実行できるようにする
- パイプライン中で複合コマンドを使えるようにする
- ビルトインコマンドをパイプでつなげられるようにフォークする
最初の2つは今月最初のブランチに反映済みで、解説だけですが、あとの3つは解説しながら実装していきます。これを7ページのなかでやってます。濃密に書いていますので、ぜひ読んでみてください!
↓チラ見せして終わります。
Software Design、帰宅して記事が無事に載ってるの確認しました。
— 上田隆一 (@ryuichiueda) August 19, 2023
今月はパイプラインの他、変態バックスラッシュ改行やコメントも話題にしてます#gihyosd pic.twitter.com/kaOVmgKJ0c