[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:21642] Re: Plamo3.3不具合あれこれ



松本@兵庫県です。

_Message-Id: <20040105.232946.74736688.cyamauch@hst.phyas.aichi-edu.ac.jp>
_From: Chisato Yamauchi <cyamauch@hst.phyas.aichi-edu.ac.jp>
_Date: Mon, 05 Jan 2004 23:29:46 +0900 (JST)

>  以下のような解もありかもしれないです.
>
> - .bashrc を .profile へ名前を変更
>
> - .bashrc には,以下のみを書く.
>
>if [ -n "$PS1" ] ; then
>  . $HOME/.profile
>fi

  .profile だと紛らわしいので、どこでも使っていないようなファイル名
の方がかえって良いかも。まだ試していませんが、この方法も解決方法とし
て有効だと思います。

>   しかし,$PS1 がないのに .bashrc が呼ばれてしまうという
> のは,何か変な気がするのですが…

  私も変な気がします。でも、 man bash によると、rshd 等リモート
シェルデーモンから起動されたと判断した時は、~/.bashrc を実行する
仕様なのだそうです。

  これは、rshd, sshd 等の特例で、田原さんの心配された、シェルスクリプト
の実行時は ~/.bashrc, ~/.bash_login 等が読み込まれる事はありません。
#!/bin/bash -i
という変なスクリプトなら話は別ですが。

  ~/.bashrc, ~/.bash_login を自分なりに書き換えて見たいと言う方の
参考になるかも知れないので、それぞれのファイルの実行条件を私なりに
まとめてみました。

1. ログインシェルとして bash を起動した。
   /etc/profile ~/.bash_login を読み込み実行。Plamo のデフォルト
   の設定では、~/.bash_login が、~/bashrc も読み込み実行する。
   PS1 環境変数設定される

   例)
       プログラム名を -bash として bash を起動した場合
            login プロンプトからログインした直後の bash
            rsh remotehost
            ssh remotehost
       bash -l でbashを起動
       bash --login でbashを起動
            kterm -ls で起動した bash 等

2. ログインシェルではないが対話モード(interactive)で起動した。
   ~/.bashrc を読み込み実行。
   PS1 環境変数設定される

   例)
       標準入出力が tty で、bash をオプション無しで起動。
            kterm を -ls オプション無しで起動したときの bash
            対話モードのシェルから bash と入力して起動した時

3. 標準入出力が tty ではないが対話モードで起動された。
   ~/.bashrc を読み込み実行。
   PS1 環境変数設定される

   例)
       bash -i などオプションで強制的に対話モードを指定した時

4. rshd, sshd から起動された bash
   ~/.bashrc を読み込み実行。

   例)
       bash -i などオプションで強制的に対話モードを指定した時
       rshd, sshd などからログインシェルでなく起動された bash
            ssh remotehost command
            rsh remotehost command
            rcp remotehost:filename .
            scp remotehost:filename .

5. 対話モードでない bash
   ~/.bash_login も ~/bashrc も読み込まない。

   例)
       標準入出力が tty でない。
            echo exit|bash
            bash >log
       シェルスクリプト
            ./script.sh
            bash ./script.sh
       bash -c command

  正確さには自信がないですが、大きくは外していないと思います。
いま、問題に思っているのは 4. のケースです。場合によっては、
標準入出力が tty でないのに bash -l, bash -i で起動した場合も
問題ですが、そのような使い方をするとはちょっと考えられません。

-- 
松本 徳真
Norimasa Matsumoto
E-mail: matsu@netfort.gr.jp

Follow-Ups
[plamo:21643] Re: Plamo3.3不具合あれこれ, Shun-ichi TAHARA (田原 俊一)
References
[plamo:21636] Re: Plamo3.3不具合あれこれ, Norimasa Matsumoto
[plamo:21638] Re: Plamo3.3不具合あれこれ, Shun-ichi TAHARA (田原 俊一)
[plamo:21641] Re: Plamo3.3不具合あれこれ, Chisato Yamauchi

[検索ページ] [メール一覧]
Plamo ML 公開システム