シェル - tcsh - 環境変数の有無

 クラウディア
1. 概要
2. 環境変数の有無を判定

1. 概要

 これは、「VirtualHost」上に、「FreeBSD」をインストールして使用しているときの話です。  通常は、「Tera Term」で、「ssh」を使用してログインしており、文字コードは、「UTF-8」を使用しているので

~/.cshrc
 に

setenv LANG     ja_JP.UTF-8
 を記述しております。  これで、「sudo」を使用すると

$ sudo コマンド
パスワード:
 と表示されて、やおらパスワードを入力するわけです。  ところが、コンソールから使用するときもあって。  「VirtualBox」のコンソールは、「ja_JP.UTF-8」を表示できない(当然ではある、そんな設定はない)ので。

$ sudo コマンド
????????:
 というプロンプトになっちゃうのです。  これはまぁ、パスワードを求められているのが、あらかじめ分かっているので構わないのですが。  何かの作業で、キーを打ち間違ったときに、エラーメッセージあたりが日本語で表示されたりすると、これは、困ったことになるのです。  でまぁ、何からログインしているかによって、環境を変えたいな・・・と。  本記事は、「shell script 比較メモ」を参考にさせていただきました。

2. 環境変数の有無の判定

 参考サイトによれば

if ($!環境変数)
 で、いいのだそうで。  結局、「~/.cshrc」に

if ($?REMOTEHOST) then
    setenv LANG     ja_JP.UTF-8
endif
 と記述することで、目的を達することができました。