文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>高级shell编程技巧6(转载)

高级shell编程技巧6(转载)

时间:2006-06-02  来源:lin_lin13

<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"><title></title><meta name="GENERATOR" content="OpenOffice.org 2.0 (Linux)"><meta name="AUTHOR" content="lin lin"><meta name="CREATED" content="20060525;8284000"><meta name="CHANGEDBY" content="lin lin"><meta name="CHANGED" content="20060525;8323700"> <style> </style>

第6章 退出和退出状态

====================

exit命令被用来结束脚本,就像C语言一样.他也会返回一个值来传给父进程,父进程会判断是否

可用.


每个命令都会返回一个exit状态(有时候也叫return状态).成功返回0,如果返回一个非0值,通

常情况下都会被认为是一个错误码.一个编写良好的UNIX命令,程序,和工具都会返回一个0作为

退出码来表示成功,虽然偶尔也会有例外.


同样的,脚本中的函数和脚本本身都会返回退出状态.在脚本或者是脚本函数中执行的最后的命

令会决定退出状态.在脚本中,exit nnn命令将会把nnn退出码传递给shell(nnn必须是10进制数

0-255).


当一个脚本以不带参数exit来结束时,脚本的退出状态就由脚本中最后执行命令来决定.

1 #!/bin/bash

2

3 COMMAND_1

4

5 . . .

6

7 # 将以最后的命令来决定退出状态

8 COMMAND_LAST

9

10 exit $?


1 #!/bin/bash

2

3 COMMAND1

4

5 . . .

6

7 # 将以最后的命令来决定退出状态

8 COMMAND_LAST


$?读取最后执行命令的退出码.函数返回后,$?给出函数最后执行的那条命令的退出码.这种给

函数返回值的方法是Bash的方法.对于脚本来说也一样.总之,一般情况下,0为成功,非0失败W.

Example 6-1 exit/exit状态

################################Start Script#######################################

1 #!/bin/bash

2

3 echo hello

4 echo $? # 返回0,因为执行成功

5

6 lskdf # 不认识的命令.

7 echo $? # 返回非0值,因为失败了.

8

9 echo

10

11 exit 113 # 将返回113给shell.

12 # To verify this, type "echo $?" after script terminates.

12 # 为了验证这个,在脚本结束的地方使用"echo $?"

################################End Script#########################################


$?对于测试脚本中的命令的结果特别有用(见Example 12-32和Example 12-17).

注意: !逻辑非操作,将会反转test命令的结果,并且这会影响exit状态.

Example 6-2 否定一个条件使用!

################################Start Script#######################################

1 true # true是shell内建命令,什么事都不做,就是shell返回0

2 echo "exit status of \"true\" = $?" # 0

3

4 ! true

5 echo "exit status of \"! true\" = $?" # 1

6 # 注意:"!"需要一个空格

7 # !true 将导致一个"command not found"错误

8 #

9 # 如果一个命令以'!'开头,那么将使用Bash的历史机制.就是显示这个命令被使用的历史.

10

11 true

12 !true

13 # 这次就没有错误了.

14 # 他不过是重复了之前的命令(true).

################################End Script#########################################


注意事项:

特定的退出码都有预定的含义(见附录D),用户不应该在自己的脚本中指定他.



相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载