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文章
11357浏览量
210800 -
文本编辑器
+关注
关注
0文章
28浏览量
8146 -
javascript
+关注
关注
0文章
525浏览量
54026 -
Shell脚本
+关注
关注
0文章
36浏览量
8039
发布评论请先 登录
相关推荐
Shell基础知识(上)
shell脚本在日常的Linux系统管理工作中是必不可少的。如果不会写shell脚本,你就不算是一个合格的管理员。目前,很多单位在招聘Linux系统管理员时,
发表于 11-14 09:24
•563次阅读
Shell脚本编程实验
指示灯每隔一秒交替闪亮10次按照图中的脚本一字一句输入就行了,其中Shell基础知识一点都不清楚的话多百度下吧,上面有很多相关知识。这里我就脚本
发表于 10-22 18:25
嵌入式和物联网的shell脚本学习指南之shell脚本入门免费下载
本文档的主要内容详细技术的是嵌入式和物联网的shell脚本学习指南之shell脚本入门免费下载。
发表于 09-11 17:15
•20次下载

Linux中shell脚本执的4种方式
Linux中shell脚本的执行通常有4种方式,分别为工作目录执行,绝对路径执行,sh执行,shell环境执行。
发表于 05-23 09:28
•944次阅读

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
•696次阅读

评论