提问者:小点点

如何在变量中存储带有参数的函数的返回值?[重复]


我正在努力将函数的返回值(0或1)存储在变量中。无论我尝试什么,$var最终都会为空或遇到错误消息。这是我的具体代码:

function screen_exists() {
        if screen -list | grep -q "${1}"; then
          return 0
        else
          return 1
        fi
    }

VAR=$(screen_exists "${PLAYER_SCREEN_NAME}")
echo ${VAR}

我还尝试了一个超级简单的函数,它总是返回0,但结果相同。


共1个答案

匿名用户

$(…)是用于捕获给定命令输出的命令替换语法。如果要存储函数的返回值,请使用$?

screen_exists() {
    screen -list | grep -q "$1"
    # implicit here is: return $?
}

screen_exists "${PLAYER_SCREEN_NAME}"
ret=$?

另请注意,如果grep没有找到搜索模式,则此函数将返回1,如果它是shell实用程序中的标准规范,则返回0