您的位置:首页 > 运维架构 > Shell

linux 与 aix/hp的shell对于子shell变量赋值的作用域不同

2015-01-23 17:15 399 查看
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来用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: