これが更新された質問です
脚本:
open (my $pipe, "| ptsetenv.sh $ProductType $Release");
print $pipe "genidasack.py -v --alignment=mips64 -a -s $WORKSPACE/dbgen/ose_signals_ADA.sdt -o $WORKSPACE/$Product/\n";
close ($pipe);
コマンド 2:
ptsetenv.sh $ProductType $Release # Sets Environment Variables and creates a Child Shell
コマンド 3:
genidasack.py -v --alignment=mips64 -a -s $WORKSPACE/dbgen/ose_signals_ADA.sdt -o $WORKSPACE/$Product/\n #this has to be executed on child Shell created by Command 2
現在、最初の行の子シェルが呼び出された後に perl スクリプト内でスクリプトを実行すると、子シェルからタイプ終了するとスクリプトが子シェルに残りますが、これは必要ではありません。
ptsetenv.sh の内容は次のとおりです。
envsetup.py $*
./export_env.sh
export_env.sh は、基本的に子シェルを作成するスクリプトです
export_env.sh の内容が必要な場合はお知らせください
export_env.sh の内容は次のとおりです。
has_dir()
{
if [ -d $1 ]; then
return 0
else
return 1
fi
}
has_dir $DXENVROOT
if [ "$?" != "0" ]; then
echo "Directory $DXENVROOT does not exist. Exiting the script."
exit -1
fi
echo "Environment set to ${DXENVNAME} ${DXENVVERSTR}"
echo $SHELL
$SHELL
echo "Exiting ${DXENVNAME} ${DXENVVERSTR} shell"