アカウント名:
パスワード:
次はデフォルトの文字コードに手を付けてくれたまへ
Windowsの文字コードって複数あるの?
メモ帳のだぞデフォルトだとANSIになってる他にUnicode、Unicode big endian、UTF-8が使える
最近はHTMLやソースコード関連がUTF-8推奨なのでデフォルトをUTF-8に変えても良さそう
BOM困るよね。スクリプトとか設定ファイルとかメモ帳で弄っちゃって、BOMのせいで動作しないってケースが希にある。
改行コードが CRLF になっているくらいで command not found とか言うシェルのうんこっぷりを直す方が良い気がする。頑なにCRを無視するようにしないのは、したらいけない理由がなんかあるんだろうか
シェルスクリプトってものが分かってない奴が好き勝手に書いてるな。あれは人間から見たらテキストファイルだけど、カーネルから見たらプログラム(実行ファイル)だぞ。Windowsで言えばexeファイルの先頭が「0x5A4D」以外でも動作しろって言ってるレベルで酷い。
OSは#!で始まるファイルが起動されたら、それが参照するバイナリをロードするって厳然とした規格なので1行目だけは「柔軟な対応」は出来ないし、やってはいけない。2行目以降なら起動されたプログラム側(/bin/shや/usr/bin/perlなど)が好きに処理できるが。
https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%90%E3%83%B3_(Unix) [wikipedia.org]
そこのリンク先のWikipediaの記事に書いてあるように、#!の解釈は結構OSによってブレがあります。なので、LFの手前のCRを切り捨てたり、EF BB BF # !の5バイトもshebangとして認識するシステムが将来登場しても別におかしなことではないと思います。
OSは#!で始まるファイルが起動されたら、それが参照するバイナリをロードするって厳然とした規格なので1行目だけは「柔軟な対応」は出来ないし、やってはいけない。
そのWikipediaの記事内からリンクが貼られているThe #! magic, details about the shebang/hash-bang mechanism on various Unix flavours [in-ulm.de]に書かれているように、POSIXなどの規格にろくな規定は無く、sehbang行の取り扱いはOSごとに様々で、柔軟どころか好き勝手で困る有様です。むしろ、どのOSも遵守するような厳然とした規格が欲しいくらいです。
将来登場する可能性は否定しないが、現在逸脱したシステムが存在しないってことは、それは「変えてはいけない部分」でしょう。っていうか2バイトを5バイトに変更って簡単な話じゃないぞ・・・・・もう新種のOS作った方が早いかもしれない。
そのwikipediaに書いてあるように、シバンには仕様上の制限が問題になってるにも関わらず実装側のトリックで回避せざるを得ないほど「手を付けてはいけない部分」なんだよ。POSIXも全ての実装を網羅してるわけではないがUNIXの長年の歴史が作った不文律が相当存在する。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
いいぞ (スコア:0)
次はデフォルトの文字コードに手を付けてくれたまへ
Re: (スコア:0)
Windowsの文字コードって複数あるの?
Re: (スコア:0)
メモ帳のだぞ
デフォルトだとANSIになってる
他にUnicode、Unicode big endian、UTF-8が使える
最近はHTMLやソースコード関連がUTF-8推奨なので
デフォルトをUTF-8に変えても良さそう
Re: (スコア:5, すばらしい洞察)
Re: (スコア:0)
BOM困るよね。
スクリプトとか設定ファイルとかメモ帳で弄っちゃって、BOMのせいで動作しないってケースが希にある。
Re: (スコア:0)
改行コードが CRLF になっているくらいで command not found とか言う
シェルのうんこっぷりを直す方が良い気がする。頑なにCRを無視するように
しないのは、したらいけない理由がなんかあるんだろうか
Re: (スコア:0)
シェルスクリプトってものが分かってない奴が好き勝手に書いてるな。
あれは人間から見たらテキストファイルだけど、カーネルから見たらプログラム(実行ファイル)だぞ。
Windowsで言えばexeファイルの先頭が「0x5A4D」以外でも動作しろって言ってるレベルで酷い。
OSは#!で始まるファイルが起動されたら、それが参照するバイナリをロードするって厳然とした規格なので
1行目だけは「柔軟な対応」は出来ないし、やってはいけない。
2行目以降なら起動されたプログラム側(/bin/shや/usr/bin/perlなど)が好きに処理できるが。
https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%90%E3%83%B3_(Unix) [wikipedia.org]
Re:いいぞ (スコア:0)
そこのリンク先のWikipediaの記事に書いてあるように、#!の解釈は結構OSによってブレがあります。なので、LFの手前のCRを切り捨てたり、EF BB BF # !の5バイトもshebangとして認識するシステムが将来登場しても別におかしなことではないと思います。
OSは#!で始まるファイルが起動されたら、それが参照するバイナリをロードするって厳然とした規格なので1行目だけは「柔軟な対応」は出来ないし、やってはいけない。
そのWikipediaの記事内からリンクが貼られているThe #! magic, details about the shebang/hash-bang mechanism on various Unix flavours [in-ulm.de]に書かれているように、POSIXなどの規格にろくな規定は無く、sehbang行の取り扱いはOSごとに様々で、柔軟どころか好き勝手で困る有様です。むしろ、どのOSも遵守するような厳然とした規格が欲しいくらいです。
Re: (スコア:0)
将来登場する可能性は否定しないが、現在逸脱したシステムが存在しないってことは、それは「変えてはいけない部分」でしょう。
っていうか2バイトを5バイトに変更って簡単な話じゃないぞ・・・・・もう新種のOS作った方が早いかもしれない。
そのwikipediaに書いてあるように、シバンには仕様上の制限が問題になってるにも関わらず実装側のトリックで
回避せざるを得ないほど「手を付けてはいけない部分」なんだよ。
POSIXも全ての実装を網羅してるわけではないがUNIXの長年の歴史が作った不文律が相当存在する。