シェルスクリプト内でリモートで呼び出されたか否かを判定してみたいと思います。
具体的にはremsh script.sh
と./script.sh
それぞれで実行したときに違う結果を返すようなスクリプトをつくります。
コード
結果
・ローカルで実行
# ./remote_script.sh local dayo
・リモートで実行
# remsh test001 ./remote_script.sh remote dayo
かんたんな説明
UNIX/LinuxにはREMOTEHOST
という環境変数があり、telnetやrloginなどをつかって接続した際、接続元のホスト名がここにこの変数にはいるのでそれを利用しています。
REMOTEHOST
になにもはいっていないということはローカルでそのまま実行している。ということになります。