網站首頁 編程語言 正文
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
原文鏈接:https://blog.csdn.net/qq_37189082/article/details/121894595
相關推薦
- 2024-02-26 JqGrid獲得所有選中行數據ID數組,獲取所有行的ID數組
- 2022-12-08 C語言中-a++和-++a運算順序實例解析_C 語言
- 2021-12-02 Postman?使用指南及小技巧_相關技巧
- 2022-10-01 React?Hook中useState更新延遲問題及解決_React
- 2023-05-24 golang?recover函數使用中的一些坑解析_Golang
- 2023-12-16 SpringBoot之自定義Starter
- 2022-05-22 Python學習之os包使用教程詳解_python
- 2022-04-04 webpack-loaders: postcss
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支