首页 > 系统相关 >Shell编程 第 6~11 章

Shell编程 第 6~11 章

时间:2022-12-23 16:00:10浏览次数:38  
标签:11 Shell 编程 echo sh scripts test hadoop100 root

Shell编程 第 6~11 章

第 6 章 流程控制(重点)、

第 6 章 流程控制(重点)

6.1 if 判断

语法

(1)单分支

if [ 条件判断式 ];then
程序
fi

或者

if [ 条件判断式 ]
then
程序
fi

(2)多分支

if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
fi

注意事项:
①[ 条件判断式 ],中括号和条件判断式之间必须有空格
②if 后要有空格

操作

  1. 如果25大于18,则输出OK
[root@hadoop100 ~]# a=25
[root@hadoop100 ~]# if [ $a -gt 18 ]; then echo OK; fi
OK
  1. 脚本
    此方法不赋值输出会报错,需要改进
[root@hadoop100 ~]# cd scripts/
[root@hadoop100 scripts]# vim if_test.sh
[root@hadoop100 scripts]# cat if_test.sh 
#!/bin/bash

if [ $1 = miren ]
then
	echo "welcome,miren"
fi
[root@hadoop100 scripts]# chmod +x if_test.sh 
[root@hadoop100 scripts]# ./if_test.sh 
./if_test.sh: 第 3 行:[: =: 期待一元表达式

在条件两边加上"变量"x="字符串"x

[root@hadoop100 scripts]# vim if_test.sh
[root@hadoop100 scripts]# cat if_test.sh 
#!/bin/bash

if [ "$1"x = "miren"x ]
then
	echo "welcome,miren"
fi
[root@hadoop100 scripts]# ./if_test.sh 
[root@hadoop100 scripts]# ./if_test.sh miren
welcome,miren
[root@hadoop100 scripts]# ./if_test.sh mirenaaa
  1. 加上逻辑 与-a(and) 或-o(or)
[root@hadoop100 scripts]# a=15
[root@hadoop100 scripts]# echo $a
15
[root@hadoop100 scripts]# if [ $a -gt 18 ] && [ $a -lt 35 ]; then echo OK; fi
[root@hadoop100 scripts]# a=25
[root@hadoop100 scripts]# if [ $a -gt 18 ] && [ $a -lt 35 ]; then echo OK; fi
OK
[root@hadoop100 scripts]# a=36
[root@hadoop100 scripts]# if [ $a -gt 18 ] && [ $a -lt 35 ]; then echo OK; fi

简写

[root@hadoop100 scripts]# a=20
[root@hadoop100 scripts]# if [ $a -gt 18 -a $a -lt 35 ]; then echo OK; fi
OK
  1. 多分支
[root@hadoop100 scripts]# vim if_test.sh 
[root@hadoop100 scripts]# cat if_test.sh 
#!/bin/bash

if [ "$1"x = "miren"x ]
then
	echo "welcome,miren"
fi

# 输入第二个参数,表示年龄,判断属于哪个年龄段
if [ $2 -lt 18 ]
then
	echo "未成年人"
elif [ $2 -lt 35 ]
then
	echo "青年人"
elif [ $2 -lt 60 ]
then
	echo "中年人"
else
	echo "老年人"
fi
[root@hadoop100 scripts]# ./if_test.sh miren 21
welcome,miren
青年人

6.2 case 语句

语法

case $变量名 in
"值 1")
如果变量的值等于值 1,则执行程序 1
;;
"值 2")
如果变量的值等于值 2,则执行程序 2
;;
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac

注意事项:
(1)case 行尾必须为单词in,每一个模式匹配必须以右括号结束。
(2)双分号;;表示命令序列结束,相当于 java 中的 break。
(3)最后的*)表示默认模式,相当于 java 中的 default。

操作

[root@hadoop100 scripts]# vim case_test.sh
[root@hadoop100 scripts]# cat case_test.sh 
#!/bin/bash

case $1 in
1)
	echo "one"
;;
2)
	echo "two"
;;
3)
	echo "three"
;;
*)
	echo "number else"
;;
esac
[root@hadoop100 scripts]# chmod +x case_test.sh 
[root@hadoop100 scripts]# ./case_test.sh 2
two
[root@hadoop100 scripts]# ./case_test.sh 6
number else

6.3 for 循环

语法1

for (( 初始值;循环控制条件;变量变化 ))
do
程序
done

语法2

for 变量 in 值 1 值 2 值 3…
do
程序
done

标签:11,Shell,编程,echo,sh,scripts,test,hadoop100,root
From: https://www.cnblogs.com/mr155/p/17000739.html

相关文章

  • Xmind 2022 for Mac(思维导图软件) 22.11.2508中文版
    Xmind2022forMac是一款全功能的思维导图软件,拥有专业实用的功能,包括思维管理、商务演示、与办公软件协同工作等功能,让您的办公更有效,还加入了演讲模式,在演说模式可自动生......
  • Day10_11_消息队列之保证RabbitMQ全链路数据完全不丢失
    保证RabbitMQ全链路数据完全不丢失一.消息可靠性概述1.消息生命周期过程一条消息从创建到最终被消费掉,也就是从生产端到消费端最终被消费掉大致上要经过3个步骤:1️⃣.生产......
  • Day11_01_Redis教程之非关系型数据库
    非关系型数据库简介一.非关系型数据库1.NoSQL简介NoSQL,泛指非关系型的数据库,NoSQL即Not-OnlySQL,它可以作为关系型数据库的良好补充.随着互联网Web2.0网站的兴起,非关系型......
  • Day11_02_Redis教程之Redis简介
    Redis简介一.Redis是什么?1.Redis开发背景2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人SalvatoreSanf......
  • Day11_03_Redis教程之Redis服务器客户端安装配置及配置文件详解
    Redis服务器客户端安装配置及配置文件详解一.Redis的安装在ubuntu18.04下,可以直接通过命令安装.1.更新系统环境$sudoapt-getupdate#更新软件列表$sudoapt-getupgra......
  • Day11_04_Redis教程之关闭Redis客户端
    关闭Redis客户端一.ClientKill命令RedisClientKill命令用于关闭客户端连接.redisclientkill命令基本语法:redis127.0.0.1:6379>CLIENTKILLip:port返回值:成功关......
  • Shell编程 第 1~5章
    Shell编程第1~5章第1章Shell概述、第2章Shell脚本入门、第3章变量、第4章运算符、第5章条件判断第1章Shell概述什么是Shell在计算机科学中,Sh......
  • linux 中 shell 实现从fasta中提取任意的scaffold数据
     001、测试数据[root@pc1test2]#lsa.fa[root@pc1test2]#cata.fa##测试数据>chr1ddtttgggggeeeeee>chr2iiiiirrrrsssssssss>chr3uuuuueeeeeqqqqqq......
  • 1111
    一、选题的背景二、大数据分析设计方案三、数据分析步骤importpandasaspdimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']#用来正常......
  • 03_Java筑基之Java编程基础
    03_Java筑基之Java编程基础我们是学习软件开发的,必然离不开计算机,所以在进行学习之前,首先要了解一些必要的计算机基础知识.一.计算机基础1.......