分页: 1 / 1

怎样在调用另一个shell文件后获取其返回值

发表于 : 2009-01-08 21:55
huangyingw
如题,有没有简单的示例脚本。谢谢。。

Re: 怎样在调用另一个shell文件后获取其返回值

发表于 : 2009-01-08 22:00
xiooli
在被调用脚本里面把结果echo出来就好了。

Re: 怎样在调用另一个shell文件后获取其返回值

发表于 : 2009-01-08 22:16
aerofox
对 bash,是 $?。

Re: 怎样在调用另一个shell文件后获取其返回值

发表于 : 2009-01-08 22:20
huangyingw
我没有说清楚,我希望,把被调用脚本里的一个变量的值返回,主调脚本使用这个变量值继续去干其它事情。

Re: 怎样在调用另一个shell文件后获取其返回值

发表于 : 2009-01-08 22:32
aerofox
那一般要改造那个被调用脚本,最简单的方法是在被调用脚本 (xxx) 中把变量值 echo 出来:

代码: 全选

echo $variable
然后在调用脚本中重新赋值

代码: 全选

variabel=`xxx`
这种方法只适用于被调用脚本没有其它信息需要从标准输出设备输出的情况,而且需要多个变量值时麻烦。如果需要多个变量值,可以在 xxx 中用

代码: 全选

echo "var1=$var1; var2=$var2"
然后在调用脚本中

代码: 全选

eval `xxx`
如果 xxx 还有其它信息要在标准输出中输出,则可以用临时文件,如 xxx:

代码: 全选

echo "var1=$var1; var2=$var2" > /tmp/atmpfile

代码: 全选

. /tmp/atmpfile
当然实际使用时不应用使用 atmpfile 这种固定的文件名做为临时文件名,否则运行两个实例时就有问题了。

Re: 怎样在调用另一个shell文件后获取其返回值

发表于 : 2009-01-09 23:01
huangyingw
aerofox 写了:那一般要改造那个被调用脚本,最简单的方法是在被调用脚本 (xxx) 中把变量值 echo 出来:

代码: 全选

echo $variable
然后在调用脚本中重新赋值

代码: 全选

variabel=`xxx`
这种方法只适用于被调用脚本没有其它信息需要从标准输出设备输出的情况,而且需要多个变量值时麻烦。如果需要多个变量值,可以在 xxx 中用

代码: 全选

echo "var1=$var1; var2=$var2"
然后在调用脚本中

代码: 全选

eval `xxx`
如果 xxx 还有其它信息要在标准输出中输出,则可以用临时文件,如 xxx:

代码: 全选

echo "var1=$var1; var2=$var2" > /tmp/atmpfile

代码: 全选

. /tmp/atmpfile
当然实际使用时不应用使用 atmpfile 这种固定的文件名做为临时文件名,否则运行两个实例时就有问题了。
谢谢,我正在试,第一个试出来了。。

Re: 怎样在调用另一个shell文件后获取其返回值

发表于 : 2009-01-09 23:08
eexpress
2,3楼的都对啊。估计没理解到他们的意思。

Re: 怎样在调用另一个shell文件后获取其返回值

发表于 : 2009-01-10 11:11
huangyingw
eexpress 写了:2,3楼的都对啊。估计没理解到他们的意思。
谢谢大家,,2,3楼的太简短了。。。