LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1172|回复: 11

求助,关于脚本间变量传递的问题

[复制链接]
发表于 2006-1-18 23:39:10 | 显示全部楼层 |阅读模式
要写两个脚本,其中一个要引用另一个中的一个变量,却总是不能得到我想要的结果,而且不知道问题出在哪里,不知道这里是否有高手可以帮我一下

脚本一(config.sh):

#!/bin/sh

RT1=50

脚本二(show.sh):

#!/bin/sh

. config.sh

ip route list table $RT1




如果我把第二个脚本写成下面的样子,运行就正常了

#!/bin/sh

RT1=50

ip route list table $RT1
发表于 2006-1-18 23:58:32 | 显示全部楼层
不在一个脚本里怎么引用啊,要引用就export了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-19 00:05:54 | 显示全部楼层
不是有这句吗?
. config.sh

再说,如果我把第二个脚本写成

#!/bin/sh

. config.sh

echo $RT1

可以正确运行,那前面的问题到底是出在什么地方呢?
回复 支持 反对

使用道具 举报

发表于 2006-1-19 00:22:14 | 显示全部楼层
. config.sh 在当前bash环境里读取/执行。你第二个脚本那样写是在同一个环境中,还是一个道理
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-19 00:36:47 | 显示全部楼层
Post by shannleon
. config.sh 在当前bash环境里读取/执行。你第二个脚本那样写是在同一个环境中,还是一个道理


对不起,我没有明白你的意思

如果你是说用. config.sh和直接在同一个脚本中用RT1=50是同一个道理,那么我也是这样认为的,但为什么会得出两个完全不同的结果呢?
回复 支持 反对

使用道具 举报

发表于 2006-1-19 01:28:29 | 显示全部楼层
我错了。开始看题就没看清,想当然,讨论错方向了。如果达不到目的我也要迷惑了。
回复 支持 反对

使用道具 举报

发表于 2006-1-19 18:41:38 | 显示全部楼层
你在脚本一里加一行:export RT1.
回复 支持 反对

使用道具 举报

发表于 2006-1-26 10:47:47 | 显示全部楼层
既然 echo $RT1 是正确的,那就不是这里的问题,RT1肯定是设置了
命令行下执行 ip route list table 50 贴来看看?
回复 支持 反对

使用道具 举报

发表于 2006-1-27 07:42:06 | 显示全部楼层
在脚本2一开始加入 set -x 看看运行过程。
回复 支持 反对

使用道具 举报

发表于 2006-1-27 13:46:08 | 显示全部楼层
exam:
a.sh:
#!/bin/bash
a=xxx
b=yyy
c=zzz

b.sh:
#!/bin/bash
export $(<a.sh)
echo $a $b $c

run:
sh b.sh
BTW:test passed
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表