アカウント名:
パスワード:
それで責められるbashはとんだとばっちりだな
結構あちこちの言語で採用されてはいますが、あちこちで問題を起こしている仕様だとは思います。
bashが、なんて小さい話じゃなくUNIX全般の決まりだと言いたいのだと思う。
これは、UNIXが生まれた時にDECのマシンの上で生まれたことに由来していて、DECは機械命令とかも8進数で表記する文化だったんだよ。その当時はごく自然なことで、単に過去との互換のために今もそうなっているだけ。(だから、/etc/hostsに172.186.010.001とか書くと意図しない動作をしたりする)
でもRFCには172.186.010.001と書いて十進数と解釈されることの期待される例が出てくる罠
JavaScript の pasrseInt が基数を指定しない場合に頭が 0 で始まってたら 8進数で解釈されるというのにやられて 8月と9月はログが出なくなるというバグを仕込んだことある。
最新の ECMA Script の parseInt 仕様だと基数を指定しない場合は常に10進数で解釈するようにかわったんだっけ?
変わった8進数リテラルは0o~になった
節子、それbashだけやない
みんなや
それDOS窓でも8進数解釈されるよ、バッチファイルでやらかしたことがある。
最近はそれではマズイということで接頭0oが主流になりつつある。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
bash (スコア:1)
Re: (スコア:0)
それで責められるbashはとんだとばっちりだな
Re: (スコア:0)
結構あちこちの言語で採用されてはいますが、
あちこちで問題を起こしている仕様だとは思います。
Re:bash (スコア:1)
bashが、なんて小さい話じゃなくUNIX全般の決まりだと言いたいのだと思う。
これは、UNIXが生まれた時にDECのマシンの上で生まれたことに由来していて、DECは機械命令とかも8進数で表記する文化だったんだよ。
その当時はごく自然なことで、単に過去との互換のために今もそうなっているだけ。
(だから、/etc/hostsに172.186.010.001とか書くと意図しない動作をしたりする)
Re: (スコア:0)
でもRFCには172.186.010.001と書いて十進数と解釈されることの期待される例が出てくる罠
JavaScript の pasrseInt (スコア:0)
JavaScript の pasrseInt が基数を指定しない場合に頭が 0 で始まってたら 8進数で解釈されるというのにやられて 8月と9月はログが出なくなるというバグを仕込んだことある。
最新の ECMA Script の parseInt 仕様だと基数を指定しない場合は常に10進数で解釈するようにかわったんだっけ?
Re: (スコア:0)
変わった
8進数リテラルは0o~になった
Re: (スコア:0)
節子、それbashだけやない
みんなや
Re: (スコア:0)
それDOS窓でも8進数解釈されるよ、バッチファイルでやらかしたことがある。
Re: (スコア:0)
最近はそれではマズイということで接頭0oが主流になりつつある。