【建站服务】海南做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式-域名申请
作者: 风兰 . 阅读量: 7 . 发表时间:2022-09-21 06:02:18
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
海南做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式

行后面的命令。
下面的脚本提示输入 1 到 4,与每一种模式进行匹配:
实例
echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
1) echo '你选择了 1'
;;
2) echo '你选择了 2'
;;
3) echo '你选择了 3'
;;
4) echo '你选择了 4'
;;
*) echo '你没有输入 1 到 4 之间的数字'
;;
esac
输入不同的内容,会有不同的结果,例如:
输入 1 到 4 之间的数字:
你输入的数字为:
3
你选择了 3
下面的脚本匹配字符串:
实例
#!/bin/sh
site="runoob"
case "$site" in
"runoob") echo "菜鸟教程"
;;
"google") echo "Google 搜索"
;;
"taobao") echo "淘宝网"
;;
esac
输出结果为:
菜鸟教程
跳出循环
在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell 使用两个命令来实现该功能:break 和 continue。
break 命令
break 命令允许跳出所有循环(终止执行后面的所有循环)。
下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,需要使用break命令。
实例
#!/bin/bash
while :
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
continue 命令与 break 命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
对上面的例子进行修改:
实例
#!/bin/bash
while :
do
echo -n "输入 1 到 5 之间的数字: "
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的!"
continue
echo "游戏结束"
;;
esac
done
运行代码发现,当输入大于5的数字时,该例中的循环不会结束,语句 echo "游戏结束" 永远不会被执行。
Shell test 命令Shell 函数
4 篇笔记 写笔记
情空明月
moo***v@gmail.com
308
shell 中的 for 循环不仅可以用文章所述的方法。
对于习惯其他语言 for 循环的朋友来说可能有点别扭。
for((assignment;condition:next));do
command_1;
command_2;
commond_..;
done;
如上所示,这里的 for 循环与 C 中的相似,但并不完全相同。
通常情况下 shell 变量调用需要加 $,但是 for 的 (()) 中不需要,下面来看一个例子:
#!/bin/bash
for((i=1;i<=5;i++));do
echo "这是第 $i 次调用";
done;
执行结果:
这是第1次调用
这是第2次调用
这是第3次调用
这是第4次调用
这是第5次调用
与 C 中相似,赋值和下一步执行可以放到代码之前循环语句之中执行,这里要注意一点:如果要在循环体中进行 for 中的 next 操作,记得变量要加 $,不然程序会变成死循环。
情空明月
情空明月
moo***v@gmail.com
5年前 (2018-02-27)
This_Is_Y
Thi***s_Y@qq.com
参考地址
89
从 ubuntu 6.10 开始,ubuntu 就将先前默认的 bash shell 更换成了dash shell,其表现为 /bin/sh 链接倒了 /bin/dash 而不是传统的 /bin/bash。
可以通过 ls -l /bin/*sh 命令看到:
所以在使用 sh 命令执行脚本的时候实际使用的是 dash,而 dash 不支持这种 C 语言格式的 for 循环写法。
解决方法:使用 bash 代替 sh 运行脚本:
bash test.sh
This_Is_Y
This_Is_Y
Thi***s_Y@qq.com
参考地址
2年前 (2021-01-18)
风鹏正举
cle***@126.com
5
如果 for 循环是按 1 递增的,可以利用 seq 命令来生成数字系列,参考写法如下:
#!/bin/bash
max=5
for index in `seq $max`
do
echo $index
done
执行结果:
1
2
3
4
5
在某些情况下比使用 while 更加方便。
风鹏正举
风鹏正举
cle***@126.com
10个月前 (11-04)
開色
wrd***main@163.com
9
test 命令和 [ 底层是一个命令, [ 是一个命令,会自动检测右中括号 ],通过 which [ 查看 Linux 中命令的位置,test 不会自动检测右中括号 ] 。
[ 底层使用 c/c++ 编写的可以看它的源码:https://github.com/freebsd/freebsd-src/blob/master/bin/test/test.c。
[[ 是 bash shell 环境自己实现的判断方式,比 [ 更安全,例如:
1. [ 不能识别 $var 变量值
$ var=''
$ [ $var = '' ] && echo True
-bash: [: =: unary operator expected
$ [ "$var" = '' ] && echo True
True
$ [[ $var = '' ]] && echo True
True
2. [ 会把大于号、小于号识别为重定向符号,把 a 当成文件输入输出
$ var=
$ [ "$var" < a ] && echo True
-bash: a: No such file or directory
$ [ "$var" < a ] && echo True
True
$ [[ $var < a ]] && echo True
True
[ 相比于 [[ 的一个优点,应该是 bash shell 环境自己实现的 [[ 在其他 shell 环境不能兼容,所以 [ 有更好的可移植性。
详情可以看:
http://mywiki.wooledge.org/BashGuide/Practices#Bash_Tests
https://zhuanlan.zhihu.com/p/136591210
開色
開色
wrd***main@163.com
10个月前 (11-10)
海南做网站/制作网站/搭建网站/设计网站/开发网站-网站服务一站式
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站



shell 中的 for 循环不仅可以用文章所述的方法。
对于习惯其他语言 for 循环的朋友来说可能有点别扭。
如上所示,这里的 for 循环与 C 中的相似,但并不完全相同。
通常情况下 shell 变量调用需要加 $,但是 for 的 (()) 中不需要,下面来看一个例子:
执行结果:
与 C 中相似,赋值和下一步执行可以放到代码之前循环语句之中执行,这里要注意一点:如果要在循环体中进行 for 中的 next 操作,记得变量要加 $,不然程序会变成死循环。
情空明月
moo***v@gmail.com
This_Is_Y
Thi***s_Y@qq.com
参考地址
从 ubuntu 6.10 开始,ubuntu 就将先前默认的 bash shell 更换成了dash shell,其表现为 /bin/sh 链接倒了 /bin/dash 而不是传统的 /bin/bash。
可以通过 ls -l /bin/*sh 命令看到:
所以在使用 sh 命令执行脚本的时候实际使用的是 dash,而 dash 不支持这种 C 语言格式的 for 循环写法。
解决方法:使用 bash 代替 sh 运行脚本:
This_Is_Y
Thi***s_Y@qq.com
参考地址
风鹏正举
cle***@126.com
如果 for 循环是按 1 递增的,可以利用 seq 命令来生成数字系列,参考写法如下:
执行结果:
在某些情况下比使用 while 更加方便。
风鹏正举
cle***@126.com
開色
wrd***main@163.com
test 命令和 [ 底层是一个命令, [ 是一个命令,会自动检测右中括号 ],通过 which [ 查看 Linux 中命令的位置,test 不会自动检测右中括号 ] 。
[ 底层使用 c/c++ 编写的可以看它的源码:https://github.com/freebsd/freebsd-src/blob/master/bin/test/test.c。
[[ 是 bash shell 环境自己实现的判断方式,比 [ 更安全,例如:
1. [ 不能识别 $var 变量值
2. [ 会把大于号、小于号识别为重定向符号,把 a 当成文件输入输出
[ 相比于 [[ 的一个优点,应该是 bash