CompileDir()
{
echo $* | tr -s ' ' '\n' | while read cmd
do
ProdDir1="abc";
done
for cmd in $(echo $* |tr -s "\-" '\#' |tr -s " " '\n' )
do
ProdDir2="def";
done
echo "param1 "$ProdDir1
echo "param2 "$ProdDir2
}
CompileDir $*;
在linux下的执行结果:
$ test3.sh aaaaa
param1
param2 def
在aix/hp下的执行结果:
$ ./test3.sh aaaaa
param1 abc
param2 def
结论:为了平台统一性,在子shell赋值的变量,不要拿到父shell来用