从函数中返回

时间:2019-04-16 23:59:05  来源:igfitidea点击:

在数学中,函数ƒ需要一个输入x,可以返回一个输出ƒ(x)。
在计算机中,shell函数名可以接受输入$1并将值(true或false)返回给脚本。
换句话说,您可以从函数中返回一个退出状态。

语法

return命令将使函数退出,返回值由N指定

return N
  1. 如果没有指定N,返回的状态是最后一个命令的状态。
  2. return命令将终止该函数。
  3. 当返回值是执行的最后一个命令的返回值时,return命令不是必须的。

示例

#!/bin/bash
# 定义常量
declare -r TRUE=0
declare -r FALSE=1

is_root_user(){
 # root的id是0
 [ $(id -u) -eq 0 ] && return $TRUE || return $FALSE
}

is_root_user && echo "你可以运行这个脚本" || echo "需要root才能运行这个脚本"

从函数返回字符串

无法从函数返回一个字符串
但是,可以使用echo或printf命令将输出发送回给脚本。

#!/bin/bash
domain="example.org"
out=""

function to_lower() 
{
    local str="$@"
    local output
    output=$(tr '[A-Z]' '[a-z]'<<<"${str}")
    echo $output
}

# 调用to_lower()
to_lower "Hello World"

# 调用to_lower()并将其结果存储为$out变量
out=$(to_lower ${domain})

# 显示$out的结果
echo "Domain : $out"