Serviceを読んで理解し、同意したものとみなします。マークとインタプリターの間にスペースが挿入されているケースをたびたび見かけます。記述する特別な理由はありますか。票21+500@user10685さんのコメントの関連リンクとそこから辿れる情報で大体出尽くしている感がありますが、私も以前はスペースを入れていました。/"をマジックナンバーとして読むのでスペースが必要」とあったからです。これは誤りで実際は空白はオプショナルであり、新しい版では直っています。質問の「理由」は、かつての私にとっては「autoconfのチュートリアルに書いてあったから」となります。同様の理由でスペースを入れてる人も多いんじゃないでしょうか。required?の拙訳です。「初期のUnixの極一部のある特別なバージョン(特に4.2BSD由来のもの)では"#!"はそれに続くパスとの間にスペースを必要とする」という噂がある。int)としてファイルマジックをパースする」という(真偽不明の)記述さえ読んだことがあるかもしれない。本当にスペースを必要とするUnixは事実上存在しないことがわかった。autoconfチュートリアルではスペースが必要と誤記されているが、事実は4.2BSDでは不要だ。("10.どこでも動くシェルプログラム"は2009年7月26日のリリース2.64で訂正された)。それよりも4.2BSD,/usr/src/sys/sys/kern_exec.cを見てください(最初の出現箇所)。スペースは受け付けられるが、必須ではない。Ritterによって指摘された。Unixの新しいライセンスにより現在はコードを引用することが可能になった)。(1981年4月1日付)では#!の後にスペースまたはタブが必須とある。この記述は真実ではない。先のソースコード自体に変更はないのだから。Barnettより)ドキュメントの混乱なのか、バークレーがBSDのソースの変更を予定していたが結局しなかったのかははっきりしない。autoconfのドキュメントではDYNIXについても言及されている。この亜種が(このMANページに従って)それを実装したのかもはっきりしていない。1.2.0は実際4.2BSDの派生で、スペースは不要である。McKenzieに例の記述の本当の出所を聞いたが、残念ながら報告者もそのシステムについても記録がもう存在しない。USENETのアーカイブも徹底的に調べたがこれ以上のヒントは見つからなかった。[訳注]Unixの歴史は面白いので僕自身実際のソースをGitHubで見てみました。この記事では4.2BSDを参照したのかわかりませんが、4.1でも同じ実装です。https://github.com/dspinellis/unix-history-repo/blob/BSD-4_1_snap-Snapshot-Development/sys/sys/sys1.c#L127#!は次のコミットで追加されました。execのMANページは5/9に追加みたいです。execsBSD4には#!は存在しませんでした。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。