ROSの2つのバージョンを隣り合わせで使用しています。これを使用するには、特定のバージョンの環境変数を入手する必要があります。これを行うスクリプトを作成したいと思います。しかし、次のようなスクリプトを作成すると、変数は設定されず、おそらくサブシェルで設定されます。ファイルをメインターミナルシェルにソースするにはどうすればよいですか?
source.sh:
source /opt/ros/fuerte/setup.bash;
source ~/fuerte_workspace/setup.bash;
Source.shを呼び出す方法は次のとおりです。
./source.sh
# This does not echo anything, but I expect it should
echo $ros_config
更新:回答で提案されているようにsource.shをソースすることで、変数が設定されていることがわかります。
source ./source.sh
# This works now
echo $ros_config
。/(ドットスペースドットスラッシュ)を使用してシェルスクリプトを実行
以下に示すように、“dot space dot slash”
を使用してシェルスクリプトを実行すると、サブシェルをフォークせずに現在のシェルでスクリプトを実行します。
$ . ./setup.bash
つまり、これにより、現在のシェルのsetup.bash
で指定されたコマンドが実行され、環境が準備されます。
current Shellのスクリプトファイルのソースにドット表記を使用しますサブシェルを作成せずに:
. /opt/ros/fuerte/setup.bash
. ~/fuerte_workspace/setup.bash