Shell函數(shù)返回值方式
1、返回值的方式:
- 方法一:return
- 方法二: echo
2、return和echo使用場(chǎng)景區(qū)別:
(1).使用return返回值:
- 使用return返回值,只能返回1-255的整數(shù)
- 函數(shù)使用return返回值,通常只是用來(lái)供其他地方調(diào)用獲取狀態(tài),因此通常僅返回0或1;0表示成功,1表示失敗
(2).使用echo返回值:
- 使用echo可以返回任何字符串結(jié)果
- 通常用于返回?cái)?shù)據(jù),比如一個(gè)字符串值或者列表值
3、場(chǎng)景示例
(一) return使用場(chǎng)景
函數(shù)通過(guò)return返回一個(gè)整數(shù),這種場(chǎng)景通常是用來(lái)做判斷的,也就是說(shuō)在執(zhí)行完函數(shù)之后,需要根據(jù)它的返回值做判斷,通0表示成功,非0都是表示失敗。
#!/bin/bash
?
this_pid=$$
# 判斷nginx進(jìn)程是否正在運(yùn)行
function is_nginx_running
{
?? ?ps -ef | grep nginx | grep -v grep | grep -v $this_pid &>/tmp/null
?? ?if [ $? -eq 0 ];then
?? ??? ?# return 0,也可以省略0直接return,兩個(gè)是等價(jià)
?? ??? ?return
?? ?else
?? ??? ?return 1
?? ?fi
}
# return在函數(shù)中的返回值,只是用來(lái)做狀態(tài)判斷的,根據(jù)狀態(tài)值做下一步判斷
# 函數(shù)的返回值為0時(shí),表示nginx服務(wù)運(yùn)行正常輸出 && 后字符串,否則返回 ||后字符串
is_nginx_running && echo "Nginx is running" || echo "Nginx is stoped"
?
?
# 運(yùn)行腳本
~ % sh 29.echo_return_nginx.sh
Nginx is stoped
~ % sudo nginx ?# Mac 使用,Linux為 systemctl start nginx?
~ % sh 29.echo_return_nginx.sh
Nginx is running(二) echo使用場(chǎng)景
函數(shù)通過(guò)echo返回值,通常是返回?cái)?shù)據(jù)用的,以供程序的其它地方使用。
#!/bin/bash
?
# 獲取整個(gè)Linux系統(tǒng)上所擁有的所有用戶
function get_users
{
?? ?# users=`cat /etc/passwd | cut -d: -f1` # linux使用
?? ?# Mac 使用
?? ?users=`cat /etc/passwd | tail -n+11 | cut -d: -f1 | cut -d_ -f2`
?? ?echo $users
}
?
# 執(zhí)行該函數(shù),返回值為用戶列表
# get_users
?
# 遍歷用戶列表對(duì)用戶名做處理
user_list=`get_users`
index=1
for user in $user_list
do
?? ?echo "This $index user is : $user"
?? ?index=$(($index+1))
done
?
?
# 運(yùn)行腳本
~ % sh 30.echo_sys_user.sh
This 1 user is : nobody
This 2 user is : root
... ...
This 109 user is : oahd到此這篇關(guān)于Shell函數(shù)返回值方式的文章就介紹到這了,更多相關(guān)Shell函數(shù)返回值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
收集的55個(gè)Linux系統(tǒng)管理中常用的一些shell命令
這篇文章主要介紹了收集的55個(gè)Linux系統(tǒng)管理中常用的一些shell命令,需要的朋友可以參考下2014-12-12
Linux消息隊(duì)列實(shí)現(xiàn)進(jìn)程間通信實(shí)例詳解
這篇文章主要介紹了Linux消息隊(duì)列實(shí)現(xiàn)進(jìn)程間通信實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07
一個(gè)下載網(wǎng)頁(yè)圖片的shell腳本
這篇文章主要介紹了一個(gè)下載網(wǎng)頁(yè)圖片的shell腳本,需要的朋友可以參考下2014-03-03

