break與continue
與其他編程相同里的概念相同,代碼示例如下:
# break示例:
while true
do
echo -n "輸入 1 到 5 之間的數字:"
read aNum
case $aNum in
1|2|3|4|5) echo "你輸入的數字為 $aNum!"
;;
*) echo "你輸入的數字不是 1 到 5 之間的! 游戲結束"
break
;;
esac
done
# 輸出結果
輸入 1 到 5 之間的數字:3
你輸入的數字為 3!
輸入 1 到 5 之間的數字:7
你輸入的數字不是 1 到 5 之間的! 游戲結束
# continue示例
while true
do
echo -n "輸入 1 到 5 之間的數字:"
read aNum
case $aNum in
1|2|3|4|5) echo "你輸入的數字為 $aNum!"
;;
*) echo "你輸入的數字不是 1 到 5 之間的! 游戲結束"
continue
echo "游戲結束"
;;
esac
done
# 輸出結果,無法結束
輸入 1 到 5 之間的數字:3
你輸入的數字為 3!
輸入 1 到 5 之間的數字:7
你輸入的數字不是 1 到 5 之間的! 游戲結束
輸入 1 到 5 之間的數字:
select
選擇一個列表中的一個值,item列表值可以分別單獨寫出來,也可以是一個列表
語法格式如下:
select var in item1 item2..itemN
do
command
done
代碼示例如下:
list=(a b)
PS3="Please select the value:"
select var in ${list[*]};do
break
done
echo "your select is $var"
# 輸出結果
1) a
2) b
Please select the value:1
your select is a
1.9 函數
函數定義
shell中函數的定義格式如下, 其中return的返回值在[0-225] 之間,如果不加return將以最后一條命令運行結果,作為返回值.
[ function ] funname()
{
action;
[return int;]
}
示例代碼:
# 完整格式定義函數
function test1() {
echo "hello world1"
return 0
}
# 簡寫的函數定義
test2() {
echo "hello world2"
}
# 函數調用
test1
# 獲取上一條指令的返回值,緊接著test1之后就是代表獲取test1函數的返回值
echo $?
test2
# 輸出結果
hello world1
0
hello world2
函數參數
在Shell中,調用函數時可以向其傳遞參數。在函數體內部,通過 $$
n 的形式來獲取參數的值,例如,
$1表示第一個參數,$2表示第二個參數,依此類推。`$*`表示所有的參數,`$#`表示參數的個數
帶參數的函數示例:
```
add() {
echo "parmas: $*"
echo "params count:$#"
return $(($1+$2))
}
add 1 2
echo "sum is $?"
# 輸出結果
parmas: 1 2
params count:2
sum is 3
```
根據上面的定義來看shell函數只能返回整形且為0-255之間,那么我們想返回字符串或者數組有沒有其他辦法呢?
我們可以通過其他方法來實現類似的效果的,示例代碼如下:
**獲取字符串**結果,調用的時候通過`$(function_name param)`方式來調用,那這個函數里面所有`echo`出來的字符串就會賦值給你的變量,示例如下:
```
hello() {
echo "say hello to $1"
}
result=$(hello world)
echo $result
# 輸出結果
say hello to world
```
**獲取數組** ,這個可以通過定義全局變量,在函數里面對其賦值
```
arr=()
testArray() {
arr[0]=1
arr[1]=2
}
testArray
echo "arr content is ${arr[*]}"
echo "arr size is ${#arr[*]}"
# 輸出結果
arr content is 1 2
arr size is 2
```
# **2.參考**
bash手冊:https://www.gnu.org/software/bash/manual/bash.html
Zsh手冊: https://zsh.sourceforge.io/Doc/Release/index.html#Top
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Linux
+關注
關注
87文章
11496瀏覽量
213208 -
文本編輯器
+關注
關注
0文章
28瀏覽量
8233 -
javascript
+關注
關注
0文章
525瀏覽量
54621 -
Shell腳本
+關注
關注
0文章
36瀏覽量
8208
發布評論請先 登錄
相關推薦
熱點推薦
Shell基礎知識(上)
shell腳本在日常的Linux系統管理工作中是必不可少的。如果不會寫shell腳本,你就不算是一個合格的管理員。目前,很多單位在招聘Linux系統管理員時,
發表于 11-14 09:24
?648次閱讀
Shell腳本編程實驗
指示燈每隔一秒交替閃亮10次按照圖中的腳本一字一句輸入就行了,其中Shell基礎知識一點都不清楚的話多百度下吧,上面有很多相關知識。這里我就腳本
發表于 10-22 18:25
Linux中shell腳本執的4種方式
Linux中shell腳本的執行通常有4種方式,分別為工作目錄執行,絕對路徑執行,sh執行,shell環境執行。
發表于 05-23 09:28
?1007次閱讀

109個實用shell腳本分享
Shell腳本,就是利用Shell的命令解釋的功能,對一個純文本的文件進行解析,然后執行這些功能,也可以說Shell腳本就是一系列命令的集合
shell腳本基礎知識匯總1
Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。
Linux 的 Shell 種類眾多,常見的有:
shell腳本基礎知識匯總2
Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。
Linux 的 Shell 種類眾多,常見的有:
shell腳本基礎知識匯總3
Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。
Linux 的 Shell 種類眾多,常見的有:
shell腳本基礎知識
shell腳本是一個文件,里面存放的是特定格式的指令,系統可以使用腳本解析器翻譯或解析指令并執行(無需編譯),shell腳本的本質是
Linux Shell腳本經典案例分享
? 作為一名 Linux 運維工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時間做自己的事。最近在網上沖浪的時候,發現大家對Shell腳本都有“心結”,要么覺得自己寫出來不好看,要么根本無從下手。 下面分享249個真實
發表于 06-16 14:03
?810次閱讀

評論