Linux return 命令介绍
return(返回)命令用于从一个 shell 函数或脚本中退出,并返回一个值。这个值可以用来判断函数或脚本是否执行成功或失败。如果指定了一个参数 [N],则返回 [N];如果没有指定参数,则返回函数或脚本中最后一条命令的退出状态。[N] 只能是一个数字值,范围是 0 到 255,其中 0 表示成功,非 0 表示失败。
Linux return 命令适用的 Linux 版本
return 命令是一个内置命令,它适用于所有的 Linux 发行版,如 Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian 等。不过,需要注意的是,return 命令只能在函数或脚本中使用,不能在交互式 shell 中使用。如果在交互式 shell 中使用 return 命令,会导致 shell 退出。
Linux return 命令的基本语法
return 命令的语法格式如下:
return [N]
Linux return 命令的常用选项或参数说明
return 命令没有选项,只有一个可选的参数 [N],表示要返回的值。如果省略 [N],则返回最后一条命令的退出状态。
Linux return 命令实例详解
下面给出一些 return 命令的实例,以便更好地理解和使用它。
实例1:定义一个函数并返回一个值
[linux@bashcommandnotfound.cn ~]$ function fun1 () {
return 34
}
[linux@bashcommandnotfound.cn ~]$ fun1
[linux@bashcommandnotfound.cn ~]$ echo $?
34
这个实例定义了一个名为 fun1 的函数,它返回 34。调用这个函数后,可以用 $? 变量获取它的返回值,然后用 echo 命令打印出来。
实例2:定义一个函数并返回最后一条命令的退出状态
[linux@bashcommandnotfound.cn ~]$ function fun2 () {
ls /tmp
return
}
[linux@bashcommandnotfound.cn ~]$ fun2
systemd-private-0a9b7f9c5f8a4f6a9c1f8f0c2a1f9a9f-colord.service-0XmZ0L
systemd-private-0a9b7f9c5f8a4f6a9c1f8f0c2a1f9a9f-rtkit-daemon.service-9wZyYF
[linux@bashcommandnotfound.cn ~]$ echo $?
0
这个实例定义了一个名为 fun2 的函数,它执行了 ls /tmp 命令,然后没有指定返回值。调用这个函数后,可以用 $? 变量获取它的返回值,它等于 ls /tmp 命令的退出状态,即 0。
实例3:定义一个函数并根据条件返回不同的值
[linux@bashcommandnotfound.cn ~]$ function fun3 () {
if [ -f /etc/passwd ]; then
return 0
else
return 1
fi
}
[linux@bashcommandnotfound.cn ~]$ fun3
[linux@bashcommandnotfound.cn ~]$ echo $?
0
这个实例定义了一个名为 fun3 的函数,它判断 /etc/passwd 文件是否存在,如果存在则返回 0,否则返回 1。调用这个函数后,可以用 $? 变量获取它的返回值,它反映了文件是否存在的情况。
实例4:定义一个函数并返回一个字符串
[linux@bashcommandnotfound.cn ~]$ function fun4 () {
echo "Hello, world!"
return
}
[linux@bashcommandnotfound.cn ~]$ fun4
Hello, world!
[linux@bashcommandnotfound.cn ~]$ echo $?
0
这个实例定义了一个名为 fun4 的函数,它打印了一个字符串,然后没有指定返回值。调用这个函数后,可以用 ? 变量获取它的返回值,它等于 echo 命令的退出状态,即 0。需要注意的是,echo 命令的输出不是 return 命令的返回值,而是函数的标准输出。如果想要获取函数的标准输出,可以用 () 括起来,如下:
[linux@bashcommandnotfound.cn ~]$ res=$ (fun4)
[linux@bashcommandnotfound.cn ~]$ echo $res
Hello, world!
Linux return 命令的注意事项
- return 命令只能在函数或脚本中使用,不能在交互式 shell 中使用,否则会导致 shell 退出。
- return 命令的参数只能是一个数字值,范围是 0 到 255,其中 0 表示成功,非 0 表示失败。如果指定了一个超出范围的值,会被取模 256,如 return 257 等于 return 1。
- return 命令的返回值可以用 $? 变量获取,也可以用来进行逻辑判断,如 fun1 && fun2 表示如果 fun1 返回 0,则执行 fun2;fun1 || fun2 表示如果 fun1 返回非 0,则执行 fun2。
- 如果在函数或脚本中没有使用 return 命令,那么默认的返回值是最后一条命令的退出状态。
- 如果在函数或脚本中使用了 return 命令,那么后面的命令不会被执行,函数或脚本会立即退出。
- 如果在交互式 shell 中执行了一个函数或脚本,那么 return 命令不会影响 shell 的运行,只会影响函数或脚本的运行。
- 如果在交互式 shell 中执行了 return 命令,会出现 bash: return: command not found 的错误提示,这是因为 return 命令不是一个外部命令,而是一个内置命令。要想在交互式 shell 中使用 return 命令,可以用 enable 命令启用它,如下:
[linux@bashcommandnotfound.cn ~]$ enable -n return
[linux@bashcommandnotfound.cn ~]$ return 0
[linux@bashcommandnotfound.cn ~]$ echo $?
0
评论区