Shell函數返回值方式
1、返回值的方式:
- 方法一:return
- 方法二: echo
2、return和echo使用場景區別:
(1).使用return返回值:
- 使用return返回值,隻能返回1-255的整數
- 函數使用return返回值,通常隻是用來供其他地方調用獲取狀態,因此通常僅返回0或1;0表示成功,1表示失敗
(2).使用echo返回值:
- 使用echo可以返回任何字符串結果
- 通常用於返回數據,比如一個字符串值或者列表值
3、場景示例
(一) return使用場景
函數通過return返回一個整數,這種場景通常是用來做判斷的,也就是說在執行完函數之後,需要根據它的返回值做判斷,通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在函數中的返回值,隻是用來做狀態判斷的,根據狀態值做下一步判斷 # 函數的返回值為0時,表示nginx服務運行正常輸出 && 後字符串,否則返回 ||後字符串 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使用場景
函數通過echo返回值,通常是返回數據用的,以供程序的其它地方使用。
#!/bin/bash # 獲取整個Linux系統上所擁有的所有用戶 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 } # 執行該函數,返回值為用戶列表 # 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
到此這篇關於Shell函數返回值方式的文章就介紹到這瞭,更多相關Shell函數返回值內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- linux shell 編程之函數使用詳解
- 入門shell腳本基礎及原理
- Shell編程之變量的高級用法詳解
- 面試必問Linux 命令su和sudo的區別解析
- Shell編程之/bin/bash和/bin/sh的區別淺析