CentOSで、ログイン時にシェルプログラムで処理を実行しています。


ただ、SFTP経由の場合も処理されてしまう為、
TeraTerm経由等の場合に限定したいのですが、
判断方法はないものでしょうか。

「$TERM」だけでは、ターミナルソフトや設定により内容が変わってくる為、
それ以外の値又は何らかの方法で判断できればと考えております。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/07/11 23:47:59
  • 終了:2012/07/12 01:02:32

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4490ベストアンサー獲得回数18582012/07/12 00:18:34

ポイント100pt

ログインシェルに、何を選んでいるかによります。

もし、bash がログインシェルなら、.bashrc を以下のように。

環境変数の設定など、必ずやりたい処理。

[ -z "$PS1" ] && return

telnet でのログインなど、対話的な処理だけで、実行したい処理。

もし、tcsh がログインシェルなら、.tcshrc を以下のように。

環境変数の設定など、必ずやりたい処理。

if ($?prompt == 0) exit

telnet でのログインなど、対話的な処理だけで、実行したい処理。

どちらも、対話的な処理で呼ばれているかどうかの判定をして、
対話的な処理で呼ばれているのでなければ、途中で処理を抜ける、という感じ。
bash と tcsh に限らず、sh & csh 系なら、こんな感じでいけるはずです。

他2件のコメントを見る
id:a-kuma3

んー、どうなるかな。ドキドキ

2012/07/12 00:51:52
id:Auxo

お教えいただいた方法でうまくいきました!

本当にありがとうございました。

2012/07/12 01:02:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません