macOS High Sierra(10.13.6)のfold(1)コマンドが死んでる話
シェルスクリプトで汎用的なコマンドを作るのがダルかったので雛形を作ろうとしていた時にSegmentation Fault
に出くわした。
SEGV
なんてPOSIX準拠のコマンドを普通に使っている限り発生しないと思っていたのだけれど、発生してしまったものは仕方ないので少々調査してみることにした。
どうやらmacOSのfold(1)
がバグを抱えているくさい。標準入力から値を渡し、-s
または-b
オプションをつけると確実にSEGV
する。
上記の通り、BSDのfold(1)
ではなくGNUのfold(1)
では正常に動作している。
macOS自体がBSD系なので、同じ系統であるFreeBSD
(12.0 Current)でも動作を確かめてみた。結果としては問題なく動作した。
うーん困った... 一応Appleにバグレポートを投げてみたけれど、いつころからこのバグを抱えているんだろうか...
fold(1)
を使うシェルスクリプトが全滅する可能性もありなんとも言えない。せめてPOSIXの範囲内では正常に動作するようにしてほしい...
というかPOSIX標準満たせてなくてもThe Open GroupのUNIX認証通るんですね...特にテストとかはないのかな