dポイントプレゼントキャンペーン実施中!

今、私が作っているのは、UNIXコマンドを知らない人達に、
一時的にTera TermよりUNIX機にログインして簡単な作業を
してもらう為のCシェルです。

ほとんどコマンドを知らないわけですから、なるべくなら
ログイン時にそのCシェルが起動して、作業を終えたら
(シェルを終了したら or シェル内部で)自動的にログアウト
するような物を作りたいのです!(~Q~;)。

つまり、なるべく変な事して欲しくないと。。。言うことなのですが、
まだ私がCシェル初心者なもので、やり方が解りません。
何か良い方法がありましたらお願い致します<(__)>

ちなみに、SunOS 5.6 Solarisです。

A 回答 (3件)

>(シェルを終了したら or シェル内部で)自動的にログアウト


>するような物を作りたいのです!

自分は、メールサーバに使用しているLinuxマシンで、
perlでメニュー形式で作業(パスワード設定、メール転送
設定等)が出来るスクリプトを作って使ってもらっています。
bashを使っているので、各ユーザの~/.bash_profileファ
イルにそのスクリプトを記入しておけば、login時に自動的
に、そのスクリプトが立ち上がります。で、そのスクリプト
のなかで、logoutコマンドを呼び出して自動的にlogoutさ
せてます。
cshなら、~/.loginにそのスクリプトを記述しておけば、
自動で動くでしょうし、logoutコマンドを使えば(検索
したところSunOS,Solarisともあるようです)logoutさせる
ことが出来ると思いますが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます<(__)>。

結局、もう自分で作っていたCシェルが
ほぼ完成状態にあったので、
それを↓こんな風に改版して実現しました。

=====自作シェル内=======
~省略~
printf "   端末エミュレータを終了させますか?(y/n) => "
set reply=$<
switch ( $reply )
case "y":
exit 9 ← statusに9をいれる
breaksw
default:
exit 1
breaksw
endsw

======~/.login 内 ========
~省略~

"自作".csh
if ( $status == 9 ) then
logout
endif

こんなんです。~/.login内でないと、logoutって使えない
出来ないですね。初めて知りました(無知(´Å`;)。
ありがとうございました。

お礼日時:2002/06/13 13:56

そういう場合には、ログインシェル自体をシェルスクリプトにしてしまうのが


一番です。

.login などにスクリプトを記述すると、break が上がったり、suspend されると
ログインシェルに戻ってしまうケースがあります。

やらせたいことをシェルスクリプトで作ったら、後は、その仕事をする専用の
ユーザを作り、そのログインシェルを、そのシェルスクリプトにします。

コマンドは useradd や usermod あたりを man で調べると良いでしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます<(__)>。

結局、こんな↓風にしました。
これからも何かあったら宜しくお願いします!

=====自作シェル内=======
~省略~
printf "   端末エミュレータを終了させますか?(y/n) => "
set reply=$<
switch ( $reply )
case "y":
exit 9 ← statusに9をいれる
breaksw
default:
exit 1
breaksw
endsw

======~/.login 内 ========
~省略~

"自作".csh
if ( $status == 9 ) then
logout
endif

お礼日時:2002/06/13 14:03

TeraTermを使用しているのなら、TeraTermのマクロで実現するほうが、なにかと便利だと思います。



 何か、シェルスクリプトで実現しなければならない理由でもあるのですか??

この回答への補足

うぅ~それが出来ないんですよぉ~。

その端末はこちらが触れる環境に無いので
このシェルを使ってくれ!と言う感じで相手の
ホームディレクトリに突っ込んで置こうかと
思ってるんですけどぉ。

やっぱり無理っすかねぇ。自動ログアウトは。。。

補足日時:2002/06/12 19:12
    • good
    • 0

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