LinuxSir.cn,穿越时空的Linuxsir!

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

在函数中何时用分号,何时不用分号? [搞定]

[复制链接]
发表于 2004-12-17 09:58:09 | 显示全部楼层 |阅读模式
我的书中给的函数的定义:
function function_name { commands ; commands ; }

而我在很多以及这本书中列的例子中,特别是这个例子:
#!/bin/bash
#scriptname:do_increment
#there is an different method of declaring a function

increment () {
    local num;    #sum is known only in this function
    let "sum=$1+1"
    return $sum  #return the value of sum to the script
   }
echo -n "the sum is "
increment 5
echo $?
echo "the value of sum is $sum"

首先它用的好像不是所列的那种样式,其次,这个函数内部有的有分号,有的无分号,再次,在bash下运行这个程序的结果不是:
the sum is 6
the value of sum is
而是
the sum is 6
the value of sum is 6
在这个函数里不是分明声明了sum是local吗?而为什么这里用的时候结果又不如书中所说呢?
请大侠指导一下,谢谢。
发表于 2004-12-17 11:03:01 | 显示全部楼层
如果你在同一行中append(接连)shell命令, 你必须用分号分开. 但如果每行只有一个命令, 可以不用.而且shell也没有要求用. 至于结果的问题, 要看看是不是你仔细的看了代码了;-)...(书上是对的)
 楼主| 发表于 2004-12-17 13:16:00 | 显示全部楼层
谢谢了,真的,这样我一下子明白了,原来书上是在同一行中写了那样的命令,不过我会仔细看一下代码,好好看一下结果的。

再次谢谢!!!
 楼主| 发表于 2004-12-17 13:22:30 | 显示全部楼层
刚刚再看了一次代码,原来是那个local num错了,应当是local sum,唉,早上起的早了,没有吃饭,竟然晕的没有看见这个字。
看来以后要看清之后再发贴了。
发表于 2004-12-17 15:03:21 | 显示全部楼层
最初由 yongjian 发表
如果你在同一行中append(接连)shell命令, 你必须用分号分开. 但如果每行只有一个命令, 可以不用.而且shell也没有要求用. 至于结果的问题, 要看看是不是你仔细的看了代码了;-)...(书上是对的)
斑竹真利害,我一时都搞懵了:p :p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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