当前位置:网站首页>Shell process control
Shell process control
2022-07-01 23:51:00 【Resound through heaven】
1 if else sentence
1.1 if grammar
# Multiple lines
if Conditions
then
command
fi
# a line
if Conditions ; then command ; fi
1.2 if else grammar
if Conditions
then
command
else
command
fi
1.3 if elif else grammar
if Conditions 1
then
command 1
elif Conditions 2
then
command 2
elif Conditions 3
then
command 3
……
else
command N
fi
1.2 demo
Tips " Please enter your test scores :" Receive users to enter a score , Then use if else Conditional sentence judgement
requirement 1: Less than 60 Output " fail, "
requirement 2: Greater than or equal to 60 also Less than 70 Output " pass "
requirement 2: Greater than or equal to 70 also Less than 80 Output " secondary "
requirement 3: Greater than or equal to 80 also Less than 90 Output " good "
requirement 4: Greater than or equal to 90 also Less than or equal to 100 Output " good "
requirement 5: The above does not conform to the output " The results are illegal "
#!/bin/bash
read -p " Please enter your examination result :" score
if ((score<60))
then
echo " fail, "
elif ((score>=60 && score<70))
then
echo " pass "
elif ((score>=70 && score<80))
then
echo " secondary "
elif ((score>=80 && score<90))
then
echo " good "
elif ((score>=90 && score<=100))
then
echo " good "
else
echo " The results are illegal "
fi

2 Built in commands :test
Shell Medium test The command is used to check if a condition holds , It can do numerical 、 Character and file testing .
2.1 grammar
if test Numbers 1 options Numbers 2
then
...
fi
options As follows :
| Parameters | explain |
|---|---|
| -eq | Equal is true |
| -ne | True if not equal |
| -gt | Greater than is true |
| -ge | True if greater than or equal to |
| -lt | Less than is true |
| -le | True if less than or equal to |
2.2 demo
#/bin/bash
num1=1 num2=1 num3=2
echo "num1=${num1},num2=${num2},num3=${num3}"
if test $num1 -eq $num2
then
echo "num1 and num2 equal "
else
echo "num1 and num2 It's not equal "
fi
if test $num3 -gt $num2
then
echo "num3 Greater than num2"
else
echo "num3 Less than num2"
fi

3 Process control :case sentence
3.1 grammar
case value in
Matching mode 1)
command 1
command 2
...
;;
Matching mode 2)
command 1
command 2
...
;;
*)
command 1
command 2
...
;;
esac
3.2 demo
#!/bin/bash
read -p " Please enter a 0-7 The number of :" number
case $number in
1)
echo " Monday "
;;
2)
echo " Tuesday "
;;
3)
echo " Wednesday "
;;
4)
echo " Thursday "
;;
5)
echo " Friday "
;;
6)
echo " Saturday "
;;
7)
echo " Sunday "
;;
*)
echo " The number you entered is invalid "
;;
esac

4 Process control :while sentence
4.1 grammar
while Conditions
do
command 1
command 2
...
continue; # End the current cycle , Enter next cycle
break; # End the current cycle
done
4.2 demo
#!/bin/bash
read -p " Please enter a number :" number
let i=1
while (( $i <= $number))
do
echo " The first ${i} Second print : hello world"
((i++))
done

5 Process control :until sentence
5.1 grammar
until Conditions
do
command
done
5.2 demo
#!/bin/bash
read -p " Please enter a number :" number
let i=1
until (( $i >= $number ))
do
echo " The first ${i} Second print :hello world"
((i++))
done

6 Process control :for sentence
6.1 grammar
for var in item1 item2 ... itemN
do
command 1
command 2
...
done
#start: The starting value of the cycle range , Must be an integer
#end: The end value of the loop range , Must be an integer
for var in {
start..end}
do
command
done
for((i=start;i<=end;i++))
do
command
done
6.2 demo
#!/bin/bash
echo "########## Circulation mode 1############"
for i in 1 2 3 4 5
do
echo " The first ${i} Second print : hello world"
done
echo "########## Circulation mode 2############"
for i in {
1..5}
do
echo " The first ${i} Second print : hello world"
done
echo "########## Circulation mode 3############"
for((i=1;i<=5;i++))
do
echo " The first ${i} Second print : hello world"
done
6.3 Wireless loop
for((;;)); do command ; done
#!/bin/bash
let i=1
for((;;))
do
echo " The first ${i} Second print : hello world"
if test $i -eq 10
then
break
fi
((i++))
done

7 Process control :select sentence
select in Loops are used to enhance interactivity , It can display numbered menus , Users can choose different menus by entering different numbers , And perform different functions . select in yes Shell A unique cycle , Very suitable for terminals (Terminal) Such an Interaction scenario , No other language ;
7.1 grammar
select var in menu1 menu2 ...
do
command
done
7.2 demo
#!/bin/bash
echo " What is your hobby ?"
select hobby in " Programming " " game " " Basketball " " swimming "
do
echo " Your chosen hobby is :${hobby}"
break
done
echo " Your hobby is : ${hobby}"

边栏推荐
- How to realize parallel replication in MySQL replication
- Regular expression collection
- Various global files related to [.Net core] program
- cookie、session、tooken
- Similarities and differences between the defined identity execution function authid determiner and PostgreSQL in Oracle
- 【CMake】Qt creator 里面的 cmake 配置
- How excel opens CSV files with more than one million lines
- ARP报文头部格式和请求流程
- Matplotlib common charts
- JPA handwritten SQL, received with user-defined entity classes
猜你喜欢

ARP message header format and request flow

2022年最佳智能家居开源系统:Alexa、Home Assistant、HomeKit生态系统介绍

RPA tutorial 01: Excel automation from introduction to practice

S32Kxxx bootloader之UDS bootloader

Key points of security agreement

学成在线案例实战

使用VB.net将PNG图片转成icon类型图标文件

E-commerce RPA robot helps brand e-commerce to achieve high traffic

门级建模—课后习题

有没有一段代码,让你为人类的智慧所折服
随机推荐
小程序表单校验封装
PostgreSQL source code (57) why is the performance gap so large in hot update?
Postgresql随手记(10)动态执行EXECUTING语法解析过程
ADO. Net SqlDataAdapter object
使用 pair 做 unordered_map 的键值
[Qt] résoudre le problème que Qt msvc 2017 ne peut pas Compiler
攻防演练复盘
[QT] qtcreator uninstall and installation (abnormal state)
JPA handwritten SQL, received with user-defined entity classes
记录一下大文件上传偶然成功偶然失败问题
Concurrentskiplistmap -- principle of table skipping
mysql:insert ignore、insert和replace区别
力扣今日题-241. 为运算表达式设计优先级
E-commerce RPA robot helps brand e-commerce to achieve high traffic
Material design component - use bottomsheet to show extended content (I)
写给当前及未来博士研究生一些建议整理分享
Algolia's search needs are almost closed
Learn online case practice
How to realize parallel replication in MySQL replication
How to display real-time 2D map after rviz is opened