+ -
当前位置:首页 → 问答吧 → 请教一个shell调用内部定义函数无输出的问题

请教一个shell调用内部定义函数无输出的问题

时间:2011-07-14

来源:互联网

test.sh内容如下:
#!/bin/ksh
set -A _ARRAY_  1 2 3 4 5
echo "start"
GetRandom()
echo "end"

GetRandom()
{
echo "prepare m"
m = 50*(int(rand()))
echo $m
echo ${_ARRAY_[$m]}

}


脚本执行之后只能输出 start,似乎GetRandom函数调用之后没执行就退出脚本了
我是个shell新手,麻烦各位朋友帮忙看看是哪里出了问题?谢谢大家~

作者: mopeface   发布时间: 2011-07-14

m = 50*(int(rand()))
你的ksh里面这句不报错?

作者: Shell_HAT   发布时间: 2011-07-14

GetRandom()去掉()试试
m = 50*(int(rand()))应该也会报错吧!

作者: chenlei8509   发布时间: 2011-07-14

  1. #!/bin/ksh
  2. GetRandom () {
  3.     echo "prepare m"
  4.     let m=$RANDOM%4+1
  5.     echo $m
  6.     echo ${_ARRAY_[$m]}
  7. }
  8. set -A _ARRAY_  1 2 3 4 5
  9. echo "start"
  10. GetRandom
  11. echo "end"
复制代码

作者: Shell_HAT   发布时间: 2011-07-14

回复 chenlei8509


楼主的函数定义没有错,如果要去掉圆括号,就要添加function

作者: Shell_HAT   发布时间: 2011-07-14

热门下载

更多