ターミナルで実行した時と他プロセスからキックされた場合のbashの挙動が違う場合

ターミナルから叩いた時は上手くいったのに
IT(結合テスト)で他プロセスからキックされたら上手く動かない。。
みたいなときって、たまーにあります。

適正なユーザでない

よくあるのは「ユーザが違う」っていうケースです。
結合テストだとバッチ用ユーザなどのシステムユーザから実行されることが多いですが
ターミナルからだとつい自分ユーザで実行してしまいがちです。
結果、ワークディレクトリに書き込み権限がなくてコケたりします。
コーディング中はともかく、UT(単体テスト)の際には可能な限り実際の実行ユーザで実行するようにしましょう。

PATHが通っていない

他に私がハマったのは、「PATHが通ってなくて動いてくれない」ってケースです。
コマンドをちゃんと絶対パスで書いておけば問題ないんですが
それをサボった結果、期待通りの動きをしてくれない、なんてことがありました。
絶対パスが分からなければ、which コマンドで調べましょう!

エンコードしようとして nkf したのに、変換されないとか、違うバージョンの nkf で変換されたとか
そういうことが起こります。

(追記)
親バッチから子バッチを呼び出しているみたいなケースだと
子バッチに環境変数が受け渡せないみたいなこともあるようです