• 如果 shell 函数中没有 return 返回值,则函数的返回值是该函数的执行状态:0,成功;1,失败。注意,shell 函数 return 返回的值只能够是整数 。

  • 想要在 shell 函数中返回特定的值,可以通过将需要返回的值输出到标准输出中来传递给主程序变量。

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh

do_check() {
if ps -ef | grep php5-cgi | grep -v grep > /dev/null
then
echo "php5-cgi is running..."
else
echo "php5-cgi is not running..."
}

RESULT=`do_check`
echo RESULT # 输出:php5-cgi is running 或 php5-cgi is not running
echo $? # 如果函数成功执行,输出 0;否则,输出 1

因为,shell 赋值默认为字符串,所以要用命令替换符(`)。否则,RESULT 的值为字符串 do_check
$?:上个命令的退出状态,或函数的返回值