プロが教えるわが家の防犯対策術!

クライアントからteratermでservAに接続します。
そこからservBに接続します。
$ ssh servB

サーバーBに個人のディレクトリがあり、そこにシェルスクリプトを作っています。
そのシェルスクリプトは「exit 0」で終わっています。

これを実行すると、サーバーBからログアウトしてしまいます。
exitはシェルスクリプト内で使うと、シェルスクリプトを終了するだけかと思ったのですが、ログアウトもしてしまうものなのでしょうか?

exitを書かなければ、ログアウトすることなく、カレントディレクトリは変わらないままです。
実行するたびに
$ ssh servB
$ cd work/mydir
と実行しないと自分のディレクトリに戻ってこれないので不便です。

色々と調べたのですが、なぜログアウトしてしまうのかわかりません。
どうすれば、ログアウトしないのか教えて下さい。
よろしくお願いいたします。


シェルスクリプト(TEST)
#!/bin/bash -xv
echo hello!
exit 0

実行結果
[company@servB mydir]$ . TEST
hello!

Connection to servB closed.
[company@servA ~]$

A 回答 (1件)

. TEST


で実行すると、そのプロセス内で実行してしまうのでログインシェルごとexitします。
./TEST
で別プロセスとして実行するとよいでしょう。
    • good
    • 2
この回答へのお礼

ああ!!できました。
そういうことなのですね。/をつける意味も分かりました。
最初「許可がありません」とでたのですが、
$ chmod a+x TEST
と許可を付けてみたら出来ました。
複雑です↓↓自分で作っているのに実行できないとは・・・。
低レベルな質問ですみませんでした(^-^;
ありがとうございました!!

お礼日時:2008/05/07 17:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!