- 565 名前:デフォルトの名無しさん mailto:sage [2018/11/09(金) 08:36:27.28 ID:UVRb8J0Z0.net]
- >>562
個人的な特殊な状況下で気をつけてることならたくさんあるんだけどな パイプを(なるべく)使わないとかwww そうさなぁ、例えば意図せぬエラーで落ちるように、set -eを使う場合は 挙動をよく理解して使うこととかかな set -eは戻り値がエラーになった時点で中断される set -e foo() { echo foo begin; bar; echo foo end; } bar() { echo bar begin; baz; echo bar end; } baz() { echo baz; false; } foo これを実行すると、foo -> bar -> baz の呼び出しの流れが、bazのfalseで中断されて foo begin bar begin baz と表示されるんだが foo の代わりに if foo; then :; fi と実行すると なんと、foo end も bar end も表示されるんだよ つまり foo を if や && や || と組み合わせて使うと、エラー中断機能が無効化される だから、比較関数みたいに if foo; then という使い方を想定している関数は 中でしっかりエラーチェックをしておくこと 他の言語の例外みたいに考えてはいけない
|

|