パス
====

``rtshell`` は *パス* でRTCツリーのオブジェクトを示します。パスは
オブジェクトのアドレスです。ネームサーバとネームコンテクストは
ダイレクトリで、マネージャとRTコンポーネントはファイルです。POSIXの
``cat`` 等のコマンドと同じように、コマンドに渡したパスはrtshellの
ワーキングディレクトリに追加されます。rtshellの現在のワーキングディレクトリは
``RTCSH_CWD`` という環境変数に保存されて、 ``rtcwd`` というコマンドで
変更することができます。

利用できるパスはコマンド実行時のネームサーバによって変わります。
``RTCSH_NAMESERVERS`` という環境変数の値に記録されたネームサーバとパスに
指定された ネームサーバを組み合わせて提供します。

例えば、 ``/localhost/comp0.rtc`` は ``localhost`` にあるネームサーバに登録
された ``comp0.rtc`` というRTコンポーネントを示します。
``/localhost/manager/comp0.rtc`` は ``localhost`` にあるネームサーバの下の
``manager`` というディレクトリに登録された ``comp0.rtc`` というRT
コンポーネントを示します。 ``./comp0.rtc`` は現在のワーキングディレクトリ
の中にある ``comp0.rtc`` というRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン（「:」）で区切って
示します。例えば、 ``/localhost/comp0.rtc:data`` は
``comp0.rtc`` というRTコンポーネントの ``data`` というポートを示します。

新しいポートを作るコマンドもあります。この場合、オプションをパスに追加
することができます。使えるオプションは作られるポートの名前とフォーマッタ
です。指定方法は以下の通りです::

  path:port.name#formatter

例::

  /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

作られるポートの名前は ``stuff`` で、データは ``a_printer`` という関数で
ターミナルに表示するように指定してます。（ ``a_printer`` の関数はPythonが利
用可能な場所に存在する必要があります。普通はユーザがモジュールで提供します。）
作られたポートは ``comp0.rtc`` の ``input`` というポートに接続します。

「name」という部分は必須ではありません。書いていない場合は「.」文字も
書かないでください。例::

  /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

「formatter」という部分は必須ではありません。書いていない場合は「.」文字も
書かないでください。例::

  /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数
========

  RTCTREE_ORB_ARGS
    ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。

  RTCTREE_NAMESERVERS
    RTCツリーを作る時に参照するネームサーバのアドレスです。アドレスをセミ
    コロンで区切ります。リストされたアドレスはすべてRTCツリーに追加して
    rtshellで見ることができるようになります。必須ではありません。

  RTSH_CWD
    rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。
    設定しないでください。

普通、ユーザが設定する変数は ``RTCTREE_NAMESERVERS`` のみです。よく使うネ
ームサーバを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンド
は ``localhost`` 、 ``192.168.0.1:65346`` および ``example.com`` にあるネーム
サーバをいつもrtshellで利用できるようにします。

  $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com


返り値
======

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバグ情報とエラーは ``stderr`` に出します。

