我正在努力将函数的返回值(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,但结果相同。
$(…)
是用于捕获给定命令输出的命令替换语法。如果要存储函数的返回值,请使用$?
:
screen_exists() {
screen -list | grep -q "$1"
# implicit here is: return $?
}
screen_exists "${PLAYER_SCREEN_NAME}"
ret=$?
另请注意,如果grep
没有找到搜索模式,则此函数将返回1
,如果它是shell实用程序中的标准规范,则返回0
。