文档章节

三分钟掌握linux shell脚本流程控制语法

编程三分钟
 编程三分钟
发布于 09/23 10:39
字数 411
阅读 8
收藏 0

流程控制

本文章原创首发于公众号:编程三分钟

这一次我们的主题是shell脚本中的流程控制,gif动图所见即所得,语法如下。

if else

#!/bin/bash

if [ $1 == $2 ];then

   echo "a == b"

elif [ $1 -gt $2 ];then

   echo "a > b"

elif [ $1 -lt $2 ];then

   echo "a < b"

else

   echo "error"

fi

for 循环

#!/bin/bash

for loop in 1 2 3 4 5

do

    echo "The value is: $loop"

done

image.png

while 循环

#!/bin/bash
i=0
while [[ $i<3 ]]
do
    echo $i
    let "i++"
done

输出

while的判断条件可以从键盘输入,成为交互式的脚本

#!/bin/bash
echo 'press <CTRL-D> exit'
while read num
do
    echo "you input is $num"
done

ps: until循环与while循环相反,until直到判断条件为真才停止,语法同while完全一样就不多介绍了。

死循环

while true

do

    command

done

或者

for (( ; ; ))
do
    command
done

死循环,使用Ctrl+C退出。

跳出循环

就是continuebreak

case

#!/bin/bash
case $1 in
    1) echo 'You have chosen 1'
    ;;
    2) echo 'You have chosen 2'
    ;;
    *) echo 'You did not enter a number between 1 and 2'
    ;;
esac

同编程语言中的switch一样,只有语法略微不同 ,esaccase的结束符。

每个模式,用右括号结束),如果没有任何匹配的就用*),每个模式用;;两个分号连一起结束。

case 值 in

模式1)

    command1

    command2

    ...

    commandN

    ;;

模式2)

    command1

    command2

    ...

    commandN

    ;;

esac

image.png

© 著作权归作者所有

编程三分钟
粉丝 1
博文 7
码字总数 6480
作品 0
东城
私信 提问
渗透测试案例之使用”组合拳”突破防火墙限制

     年底了,在整理文档时,突然想起之前做过的一个利用Linux计划任务服务和基于ICMP协议封装的Shell,以及其他知识点和技巧的突破防火墙限制的渗透测试案例,除了它的特殊性外(下文会...

嘶吼RoarTalk
2018/01/12
0
0
关于mongodb在Linux下的定时备份

liunx shell 实现对mongodb的备份 #!/bin/bash program this shell is used for backup of mongodb history 2014/09/16 11:25 Qiushi PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/......

90后爱国
2014/09/17
265
0
Linux操作系统之Shell程序设计

Shell是种命令解释程序,也可以看作是一种命令语言的解释器。 用户在与Shell交互时所输入的命令行必须符合Shell命令的语法和语义规范,才能够被Shell理解并执行。Shell所使用的这种命令语言称...

Linux就该这么学
06/20
41
0
自然语言处理leader 150W年薪 薪资16薪   25元/天餐补  期权激励

某人工智能股权投融资服务平台 正在招 自然语言处理leade... 自然语言处理leader 150W年薪 薪资16薪 25元/天餐补 期权激励 职位定位:来了之后需要自己搭建团队。目前没有算法团队。 岗位职责...

neels
2017/06/05
3.7K
12
Shell脚本编程30分钟入门

什么是Shell脚本 示例 看个例子吧: #!/bin/shcd ~mkdir shell_tutcd shell_tut for ((i=0; i<10; i++)); do done 示例解释 第1行:指定脚本解释器,这里是用/bin/sh做解释器的 第2行:切换到...

quanpower
2014/03/23
4.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

Git ssh配置

生成密钥对 ssh-keygen -t rsa -C "email@email.com"邮箱替换自己邮箱在地址C:\Users\账户\.ssh下,id_rsa、id_rsa.pub两个文件复制文件id_rsa.pub内容到github\gitlab的Settings-> SSH ......

JUKE
27分钟前
5
0
014、使用docker-compose安装软件

创建docker-compose基础目录 mkdir -p /usr/local/docker 1、安装mysql 在/usr/local/docker/目录下创建mysql目录 mkdir -p /usr/local/docker/mysql 在/usr/local/docker/mysql目录编写doc......

北岩
28分钟前
5
0
【并发那些事 】创建线程的三种方式

创建线程可以说是并发知识中最基础的操作了,JDK 提供的创建线程的方式,如果不包括通过线程池的话,目前有三种形式,它们分别是通过继承 Thread 类,通过实现 Runable 接口,通过 FutureTa...

K1W1
34分钟前
6
0
判断链表是否有环

如果列表中不存在环,最终快指针将会最先到达尾部,此时我们可以返回 false。 如果存在环则会相遇。返回true。 Java代码实现: public boolean hasCycle(ListNode head) { if (head == ...

无名氏的程序员
35分钟前
5
0
uni-app 项目记录

await 等候,等待;期待 什么是async、await await 用于等待异步完成 通常async、await都是跟随Promise一起使用的 async返回的都是一个Promise对象同时async适用于任何类型的函数上。这样awa...

达达前端小酒馆
36分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部