在子shell中运行命令

时间:2014-05-08 17:59:01

标签: bash shell automation sh subshell

我想自动执行一项我经常做的重复任务。这就是为不同的架构创建rpm。要编译代码并创建rpm,我需要设置项目环境。在设置env之后,我将为当前架构创建rpm,并再次通过再次设置env为其他架构构建rpms。

我正在尝试自动执行此过程。问题是一旦设置了env,我将成为新shell,因此我的脚本在子shell中不可见。如何自动化?

这就是我的尝试。

cd $project_dir
setenv.sh x86      #creates new sub shell
make clean
make rpm
cp *rpm ~/

exit              #exit from the sub shell

setenv.sh x86_64     #creates new shell
make clean
make rpm
cp *.rpm ~/

exit
将env设置为x86后,下一个命令不会被执行。

1 个答案:

答案 0 :(得分:2)

您可以强制2个部分在子shell中执行,如下所示:

cd "$project_dir"

(. setenv.sh x86
make clean
make rpm
cp *rpm ~/)

(. setenv.sh x86_64
make clean
make rpm
cp *.rpm ~/)
相关问题