アカウント名:
パスワード:
てっきり最初にスクリプト全部読み込んでから走らせてると思ってた。
京大での事故で広く知られたように、シェルは最初にスクリプト全体を読み込むのではなく、「1行ずつ順次読み込む。そしてスクリプト終端に達したり exit や致命的エラーなどによりスクリプトは終了する。
走らせているスクリプトを変更する機会は今までになかった。期待どおりに動いていないのがわかったらkillしてから書き換えてるし。それでも、本番で長時間走らせている時に不具合見つかったらやっちゃうのかな。
スクリプトを改変するときはバックアップ後に別名コピーしてテストして問題がなければ元の名前に上書きしてた。小手先処理の簡単なスクリプトしか作らないので、バージョン管理とかその手のことはやってない現場仕事ですが。ループがあっても小さいものだし、それくらいなら最初に全部読み込まれそう。
上書きじゃなくてmvしよう。
自明かと思って注意しなかった。renameシステムコールを使おう、ならあってる?
あとはemacs使えとか。vimはどうかな?
remove(unlink)じゃね?openして上書きするのが問題なんであって、消してコピーか、renameで内部的にunlinkすれば安全と。unlinkさえしてあれば再オープン出来ないから安全になる。さらにrenameならunlink含めてアトミックだからさらに安心ってことで。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー
しらんかった (スコア:5, 参考になる)
てっきり最初にスクリプト全部読み込んでから走らせてると思ってた。
京大での事故で広く知られたように、シェルは最初にスクリプト全体を読み込むのではなく、「1行ずつ順次読み込む。そしてスクリプト終端に達したり exit や致命的エラーなどによりスクリプトは終了する。
走らせているスクリプトを変更する機会は今までになかった。
期待どおりに動いていないのがわかったらkillしてから書き換えてるし。
それでも、本番で長時間走らせている時に不具合見つかったらやっちゃうのかな。
スクリプトを改変するときはバックアップ後に別名コピーしてテストして問題がなければ元の名前に上書きしてた。
小手先処理の簡単なスクリプトしか作らないので、バージョン管理とかその手のことはやってない現場仕事ですが。
ループがあっても小さいものだし、それくらいなら最初に全部読み込まれそう。
Re: (スコア:0)
上書きじゃなくてmvしよう。
Re: (スコア:1)
Re: (スコア:0)
自明かと思って注意しなかった。
renameシステムコールを使おう、ならあってる?
あとはemacs使えとか。
vimはどうかな?
Re:しらんかった (スコア:0)
remove(unlink)じゃね?
openして上書きするのが問題なんであって、消してコピーか、renameで内部的にunlinkすれば安全と。
unlinkさえしてあれば再オープン出来ないから安全になる。
さらにrenameならunlink含めてアトミックだからさらに安心ってことで。