xenv shell变为子shell

问题描述 投票:0回答:1

我正在编写一个ksh来检出代码并通过xenv安装程序设置编译变量。这就是我的脚本当前的样子-

#!/usr/bin/ksh
logname=$LOGNAME
homedir="$HOME/${logname}-SVN-Dev/pkgroot"

#Create directory <username>-SVN-Dev to contain copied code.
if [ -z "$logname" ]
then
    logname=`/usr/ucb/whoami`
fi

RunCmd "rm -rf $homedir"
RunCmd "mkdir -p $homedir"

## Some code to checkout code

cd $HOME
echo "setenv PKGROOT $homedir">>$HOME/.cshrc
echo "setenv DEVROOT $homedir/src">>$HOME/.cshrc
source $HOME/.cshrc

RunCmd "/xenv/xenv -L -i $homedir/My.env $homedir;"
make -f project.mk createmakefile

上面的xenv切换shell并进入新的提示ia_cross:我的shell退出而没有执行“ make -f project.mk createmakefile”命令。

我尝试在make和xenv之间放置一个管道,但这并不能解决这个问题。有什么建议真的有帮助吗?

shell sh ksh
1个回答
0
投票

在脚本中使用以下命令,

echo "make -f project.mk createmakefile" | /xenv/xenv -c -i $homedir/My.env $homedir;

© www.soinside.com 2019 - 2024. All rights reserved.