全局变量怎么用?
测试了好久,都不知道全局变量怎么用,只好请教大家了1, 首先建一个脚本,取名 test, 其内容如下:
#声明str为全局变量
:global str
#显示该变量的值
:put $str
2, 然后在在控制台做如下测试:
#声明str为全局变量并赋值
:global str "abc"
#显示全局变量的值以检验其正确性
:put $str
显示abc, 结果正确
#测试能否传递到另外一个脚本里,运行测试脚本
/sys scr run test
显示空,结果不正确,str的值并没有传递到另外一个脚本中
请问要怎样才能把全局变量传递到另外的脚本中呢? testargs.sh 脚本:#!/bin/bash
showopts () {
while getopts ":pq:" optname
do
case "$optname" in
"p")
echo "Option $optname is specified"
;;
"q")
echo "Option $optname has value $OPTARG"
;;
"?")
echo "Unknown option $OPTARG"
;;
":")
echo "No argument value for option $OPTARG"
;;
*)
# Should not occur
echo "Unknown error while processing options"
;;
esac
done
return $OPTIND
}
showargs () {
for p in "$@"
do
echo "[$p]"
done
}
optinfo=$(showopts "$@")
argstart=$?
arginfo=$(showargs "${@:$argstart}")
echo "Arguments are:"
echo "$arginfo"
echo "Options are:"
echo "$optinfo"运行 testargs.sh 脚本:$ ./testargs.sh -p -q qoptval abc "def ghi"
Arguments are:
Options are:
Option p is specified
Option q has value qoptval
$ ./testargs.sh -q qoptval -p -r abc "def ghi"
Arguments are:
Options are:
Option q has value qoptval
Option p is specified
Unknown option r
$ ./testargs.sh "def ghi"
Arguments are:
Options are: 给点经验。我以前也遇到同样问题
解决方法是在定义全局变量的同时给它赋值
:global str"abc" 我也是在定义全局变量的同时给它赋值了,另外的脚本里面就是取不到全局变量的值啊
能不能给一个测试的代码呢?我的目的是在不同的脚本中用全局变量来传递数据 运行脚本的时候,要把变量当作参数传递给脚本啊.. 建立两个脚本
脚本1名称:script1
内容: :global x "This's a test!!"
脚本2名称:script2
内容: :log error $x
先运行1,再运行2,试验成功:LOG里有一条红色的日志 This's a test 原帖由 jk0wg 于 2007-11-29 20:39 发表 http://bbs.routerclub.com/images/common/back.gif
运行脚本的时候,要把变量当作参数传递给脚本啊..
如何传递参数?我想了很旧,也测试了很久,麻烦指点一下 原帖由 younger 于 2007-11-29 21:01 发表 http://bbs.routerclub.com/images/common/back.gif
建立两个脚本
脚本1名称:script1
内容: :global x "This's a test!!"
脚本2名称:script2
内容: :log error $x
先运行1,再运行2,试验成功:LOG里有一条红色的日志 This's a test
非常感谢,用你的例子也成功运行了,但是换成显示就不行,看来不能在脚本里使用put命令了
错误在于我总喜欢用put来显示结果
[ 本帖最后由 hcb 于 2007-11-29 21:45 编辑 ] put 在命令行下才有用的
页:
[1]