GlueLangにバックグラウンドジョブの機能を追加
Sat Jan 24 22:39:22 JST 2015 (modified: Tue Sep 19 13:17:34 JST 2017)
views: 3146, keywords:バックグラウンドジョブ,バックグラウンドプロセス,glue,GlueLang,グルー言語を作る この記事は最終更新日が7年以上前のものです。
今日の作業でGlueLangにシェルの「&」に相当する部分を追加しました。&を>>や>>=でつながっているコマンド達(ジョブ)の後ろにくっつけると、Glueはそいつらを起動してすぐに次の行に制御を移します。
次の例では、3行目の3つのコマンドが起動したらすぐに4行目に制御が移ります。
したがって、実行すると次のように4行目のbのあとに3行目のcbaが出てきます。
普通のシェルと違うのは、上の例にもありますが、「&」の後ろに名前を書けるようにしたことです。
名前は当該のジョブをwaitするときに使います。次の例では、「a」というジョブをwaitしています。in.waitというのは「内部コマンドのwait」という意味です。今日は内部コマンドを起動する仕組みも作りましたが、これの説明はまた後日。
-vオプション付きで実行すると、ちゃんと待つことが分かります。18行目でwaitが終わってから、最後のecho 'b'が実行されています。
また、一個のwaitで二つ以上のジョブも待てるようにしました。
個人的には便利かと。
寝る・・・と言いたいところですが、これから英語サイトの準備をしようかなと。