Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Oct 2025 11:30:52 +0900
From:      Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
To:        kh <kh@mogami.com>
Cc:        users-jp@freebsd.org
Subject:   Re: root =?UTF-8?B?44Gu?= shell =?UTF-8?B?44Gr44Gk44GE44Gm?=
Message-ID:  <20251025113052.ad7987e9079d0cd48b5d90bd@dec.sakura.ne.jp>
In-Reply-To: <20251025104159.3a21a2aa436ea62455b96a7c@mogami.com>
References:  <20251025094603.310B.5C005573@yamarail.net> <20251025104159.3a21a2aa436ea62455b96a7c@mogami.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Sat, 25 Oct 2025 10:41:59 +0900
kh <kh@mogami.com> wrote:

> > FreeBSD 13.x から 14.x にアップグレードしたのですが。
> > root の シェル が標準では /bin/csh から /bin/sh に変更
> 
> POSIX (IEEE Std 1003.1) に合わせることにしたのではないで
> しょうか?
> 
> 平林 浩一

青木@名古屋です。

POSIXといえば、shに関して個人的にはMandatoryで規定して欲しい
ことがあります。

・コマンドラインからだろうとgettyからだろうとshebangからだろうと、
 /bin/shとして起動された場合はPOSIXで規定されていない動作を一切
 しない

ということです。 これが強制されてくれればLinuxで公開されている
スクリプト(何らかのソフトウェアに含まれるものも含む)で
shebangは#!/bin/shなのにFreeBSDで(外部コマンドの有無や非互換は
別として)正常に動かないというportsメンテナ泣かせの事態が無く
なるのが期待できるからです。

※新規portsとしてPRが登録されたもので「動かない」「ビルドに失敗する」
 という報告が出てきて、蓋を開けてみたらパッチを登録した人がbashを
 使っていたというオチをみかけた記憶があります。 確か、bashに
 依存させてshebangfixを使って直していたかと。


要は、スクリプト内でBashの拡張機能を使用したければ明示的に
#!/bin/bashなり#!/opt/bin/bashなりを指定する必要が生じて
くれるので、コード全体を読み込んだり動かしてみたりしなくても
1行目で特定できます。

※FreeBSDでもハードリンクなりで/bin/ashを用意して挙動を分ける
 必要が生じそうですが。


-- 
青木 知明  [Tomoaki AOKI]    <junchoon@dec.sakura.ne.jp>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20251025113052.ad7987e9079d0cd48b5d90bd>