Shell函數(shù)返回值方式
1、返回值的方式:
- 方法一:return
- 方法二: echo
2、return和echo使用場景區(qū)別:
(1).使用return返回值:
- 使用return返回值,只能返回1-255的整數(shù)
- 函數(shù)使用return返回值,通常只是用來供其他地方調(diào)用獲取狀態(tài),因此通常僅返回0或1;0表示成功,1表示失敗
(2).使用echo返回值:
- 使用echo可以返回任何字符串結(jié)果
- 通常用于返回數(shù)據(jù),比如一個字符串值或者列表值
3、場景示例
(一) return使用場景
函數(shù)通過return返回一個整數(shù),這種場景通常是用來做判斷的,也就是說在執(zhí)行完函數(shù)之后,需要根據(jù)它的返回值做判斷,通0表示成功,非0都是表示失敗。
#!/bin/bash ? this_pid=$$ # 判斷nginx進程是否正在運行 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,兩個是等價 ?? ??? ?return ?? ?else ?? ??? ?return 1 ?? ?fi } # return在函數(shù)中的返回值,只是用來做狀態(tài)判斷的,根據(jù)狀態(tài)值做下一步判斷 # 函數(shù)的返回值為0時,表示nginx服務(wù)運行正常輸出 && 后字符串,否則返回 ||后字符串 is_nginx_running && echo "Nginx is running" || echo "Nginx is stoped" ? ? # 運行腳本 ~ % 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使用場景
函數(shù)通過echo返回值,通常是返回數(shù)據(jù)用的,以供程序的其它地方使用。
#!/bin/bash ? # 獲取整個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 ? # 遍歷用戶列表對用戶名做處理 user_list=`get_users` index=1 for user in $user_list do ?? ?echo "This $index user is : $user" ?? ?index=$(($index+1)) done ? ? # 運行腳本 ~ % 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本獲取國內(nèi)各大運營商網(wǎng)段腳本分享
這篇文章主要介紹了Shell腳本獲取國內(nèi)各大運營商網(wǎng)段腳本分享,本文使用亞太地區(qū)網(wǎng)絡(luò)信息記錄作為數(shù)據(jù)源,然后使用Shell腳本分析國內(nèi)的網(wǎng)段,需要的朋友可以參考下2014-12-12linux shell自定義函數(shù)(定義、返回值、變量作用域)介紹
linux shell 可以用戶定義函數(shù),然后在shell腳本中可以隨便調(diào)用。下面說說它的定義方法,以及調(diào)用需要注意那些事項2013-02-02shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別詳解
我們都知道bash?shell?腳本的方法有多種,下面這篇文章主要給大家介紹了關(guān)于shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07shell腳本學(xué)習(xí)之調(diào)用腳本將文件打包zip的方法示例
這篇文章主要給大家介紹了關(guān)于shell腳本學(xué)習(xí)之調(diào)用腳本將文件打包zip的方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-07-07Bash 腳本實現(xiàn)每次登錄到 Shell 時可以查看 Linux 系統(tǒng)信息
這篇文章主要介紹了Bash 腳本實現(xiàn)每次登錄到 Shell 時可以查看 Linux 系統(tǒng)信息,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧2019-12-12Linux命令每天必學(xué)(55)之traceroute命令
這篇文章主要介紹了Linux命令每天必學(xué)(55)之traceroute命令的相關(guān)資料,需要的朋友可以參考下2015-11-11