关于shell 中return用法解释


1、return命令会使得一个函数返回.return命令会返回一个单一的数字参数, 而这个数字参数在调用这个函数的脚本中是可见的.如果没有指定返回参数,return在默认情况下会返回上一次命令的返回代码。
2、了解一个概念:return value ﹗
我们在 shell 下跑的每一个 command 或 function ,在结束的时候都会传回父行程一个值,称为 return value 。
在 shell command line 中可用 $? 这个变量得到最”新”的一个 return value ,也就是刚结束的那个行程传回的值。
Return Value(RV) 的取值为 0-255 之间,由程式(或 script)的作者自行定义:
若在 script 里,用 exit RV 来指定其值,若沒指定,在结束时以最后一道命令之 RV 为值。 若在 function 里,则用 return RV 来代替 exit RV 即可。

Return Value 的作用,是用来判断行程的退出状态(exit status),只有两种:
0 的话为”真”( true ) 非 0 的话为”假”( false )

举个例子来说明好了:
假设当前目录內有一份 my.file 的文件,而 no.file 是不存在的:
代码:

  1. $ touch my.file
  2. $ ls my.file
  3. $ echo $? # first echo
  4. 0
  5. $ ls no.file
  6. ls: no.file: No such file or directory
  7. $ echo $? # second echo
  8. 1
  9. $ echo $? # third echo
  10. 0

上例的第一个 echo 是关于 ls my.file 的 RV ,可得到 0 的值,因此为 true ﹔
第二个 echo 是关于 ls no.file 的 RV ,则得到非 0 的值,因此为 false ﹔
第三个 echo 是关于第二个 echo $? 的 RV ,为 0 的值,因此也为 true 。
请记住:每一个 command 在结束时都会送回 return value 的﹗不管你跑什么样的命令…