打印

【Linux公开课】脚本编程

[复制链接]
306|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
菊江先生|  楼主 | 2018-8-22 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
脚本也是一个程序,而每一个程序本身都是一个真值表达式,它的真值由其返回值决定。故Shell脚本应该返回一个值,若脚本未显式指定返回值,则自动使用最后一条命令的返回值;如果需要显式指定脚本的返回值,需要用exit命令实现。18.3 脚本编程



18.3.1 命令、函数与脚本返回值

前文已经提过,脚本也是一个程序,而每一个程序本身都是一个真值表达式,它的真值由其返回值决定。故Shell脚本应该返回一个值,若脚本未显式指定返回值,则自动使用最后一条命令的返回值;如果需要显式指定脚本的返回值,需要用exit命令实现。

如程序清单18.10所示脚本,使用了exit 0命令显式返回了0,最终脚本执行结果返回值为0,如果删除exit 0这一行,将会返回1。程序清单18.10演示脚本显式返回值

#!/bin/sh

echo "hello world"

false #false命令返回值恒为1

exit 0 #显式指定脚本返回0

18.3.2 函数

Bash脚本中也可以定义函数,Bash里的函数行为像是一个独立的子脚本,故对于调用者来说,Shell中的函数和一个独立的命令区别并不大。

Bash中有两种定义函数的方法,一种是通过function关键字来定义,如:

function function_name {

command...

}

另有一种定义方法与C函数类似:

function_name () {

command...

}

后一种更具有可移植性,推荐使用。Bash中没有类似于C中提前“声明”函数的方法,任何函数都应该在其被调用前完整定义。

函数调用方法,就像使用命令一样来进行函数调用。如程序清单18.11所示脚本,首先定义了func函数,在调用函数时直接写func即可。

程序清单18.11函数定义和调用示例

#!/bin/sh

echo"demo for function and call"

fun() {

echo "I’am in func()"

}

fun

echo "end"

脚本的运行结果如图18.23函数定义和调用示例所示。






使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

446

主题

447

帖子

0

粉丝