以前、LinuxへのSSH公開鍵認証でのログインの話をしましたが、また最近、そのスクリプトのメンテナンスや機能拡張をしていまして、とある現象に遭遇。
…しかし想定通りの動きにならず、設定したはずの環境変数とは違う分岐の動作になっているようでした。
TestFlag=Yexport $TestFlag
と定義を追加しておき、
といったようなスクリプトをSSHログインして実行するようなバッチを組んでも…if [ $TestFlag = "Y" ] ; thenecho "実行したい処理"elseecho "こっちじゃないよ…"fi
なぜか、"こっちじゃないよ"と言われてしまいます。
結局、原因がわからずハマってしまいましたが、いろいろと調べてみると、
いやー、この罠にドップリと浸かってしまいました。
具体的には、「source ~/.bash_profile」などファイルを読む処理を明示的に先頭に追加して実行するようにして、そのあとに上記スクリプトの実行を行えば、何事もなかったかのようにキレイに動作しました。
意外なところに落とし穴がありますね…。