Yash 2 その 297: POSIX.1-2024 のジョブ制禦
これまで POSIX ではジョブ制禦のやり方は大雑把にしか規定されてゐなかったが、2024 年版でかなり細かく仕様が指定された。XCU に 2.11 Job Control といふ新しい節が追加されてゐる。ただし、規定の内容は既存のシェルの動作とは異なる部分もある。
これまで POSIX ではジョブ制禦のやり方は大雑把にしか規定されてゐなかったが、2024 年版でかなり細かく仕様が指定された。XCU に 2.11 Job Control といふ新しい節が追加されてゐる。ただし、規定の内容は既存のシェルの動作とは異なる部分もある。
The Open Group Base Specifications Issue 8 (POSIX.1-2024) が先日公開された。その中に以下の記載が追加されてゐる (XCU 2.5)。
Parameters can contain arbitrary byte sequences, except for the null byte. The shell shall process their values as characters only when performing operations that are described in this standard in terms of characters.
結合テストを書くときはコードベースを分離しているといふ記事を見掛けた。Yash も、テスト対象が C で書かれてゐるのに対してテストはシェルスクリプトで書かれてゐるので、実質的にコードベースが分離されてゐると言へる。結果的に、yash のテストは再利用が可能となった。
POSIX の return 組込みの規定には昔から When return is executed in a trap action, the last command is considered to be the command that executed immediately preceding the trap action.
と書いてあって、exit 組込みと同様に、トラップ内で無引数で return 組込みを呼んだらトラップに入る直前の終了ステータスが return の終了ステータスになることになってゐる。が、果たしてこれは合理的な挙動なのだらうか?
ほとんどの POSIX シェルは、パイプラインを構成するそれぞれのコマンドをシェルの直接の子プロセスとして実行する。Yash 2 もさうなってゐる。が、実は必ずしもさうしなくてよい。