shell 脚本之if、for、while语句

(1)if语句

[email protected]tu:/mnt/shared/shellbox/shellif# cat shellif.sh
#!/bin/bash

#判断字符串
if [ "$1" = "hello" ]
then
        echo "\$1=$1"
fi

#判断数字,if()方式只能在bash下用,在sh下不行
if ((  $1 > 20 ))
then
        echo "\$1: $1 > 20"
elif (( $1 == 20 ))
then
        echo "\$1 == 20"
elif (( $1 < 20 ))
then
        echo "\$1 < 20"
fi

#方括号判断语句
if [ $1 -lt 20 ]
then
        echo "\$1 < 20"
elif [ $1 -ge 20 -a $1 -le 30 ]
then
        echo "\$1 >= 20 && \$1 <= 30 "
elif [ $1 -gt 30 ]
then
        echo "\$1 > 30"
fi

执行结果:

[email protected]:/mnt/shared/shellbox/shellif# ./shellif.sh 10

$1 < 20

$1 < 20

[email protected]:/mnt/shared/shellbox/shellif# ./shellif.sh 20

$1 == 20

$1 >= 20 && $1 <= 30

[email protected]:/mnt/shared/shellbox/shellif# ./shellif.sh 30

$1: 30 > 20

$1 >= 20 && $1 <= 30

[email protected]:/mnt/shared/shellbox/shellif# ./shellif.sh 40

$1: 40 > 20

$1 > 30

(2)for语句

[email protected]:/mnt/shared/shellbox/shellfor# cat shellfor.sh
#!/bin/bash

for i in $*
do
        echo $i
done

for char in {a..c}
do
        echo $char
done

for int in {1..3}
do
        echo $int
done

执行结果:

[email protected]:/mnt/shared/shellbox/shellfor# ./shellfor.sh

a

b

c

1

2

3

(3)while语句:

[email protected]:/mnt/shared/shellbox/shellwhile# cat shellwhile.sh
#!/bin/bash

#注意: (( ))这种方式只能在bash中使用,而不能在sh中使用
i=0
while (( i < $1 ))
do
    echo "i=$i"
    let i+=1
done

#赋值时"="前后不能有空格
num=0
while [[ $num != $1 ]]
do
        echo "num=$num, num != \$1"
        let num+=1
done

while true
do
        echo "here in while true ..."
        sleep 2
done

执行结果:

[email protected]:/mnt/shared/shellbox/shellwhile# ./shellwhile.sh 5

i=0

i=1

i=2

i=3

i=4

num=0, num != $1

num=1, num != $1

num=2, num != $1

num=3, num != $1

num=4, num != $1

here in while true ...

here in while true ...

时间: 2024-10-27 07:01:02

shell 脚本之if、for、while语句的相关文章

Linux | shell脚本-比较判断和运算语句

一.简介 在我们写shell脚本的过程中,经常需要作比较判断,例如比较哪个数字大,判断文件是否存在,判断文件是否是目录,判断是否为真等操作.有时候我们还需要做运行,例如加减乘除等等,今天就来简单介绍比较表达式和运行表达式. 二.shell比较判断 1.文件状态:表达式:[ -e 文件路径 ] 有空格隔开 例如:[ -e /root ] 判断/root 是否存在(1) -e 是否存在 存在为真(2) -d 是否是目录 是目录为真(3) -f 是否是文件 是文件 为真(4) -x 是否有执行权限 有

shell脚本编程学习笔记-case语句

1.case结构条件语句语法 case语句实际上就是规范的多分支if语句 case "字符串变量"in 值1)指令1- ;; 值2)指令2- ;; *)指令3- esac 中文编程语法: case "找女朋友条件"in 有房)嫁给你- ;; 你爸是李刚)嫁给你- ;; 努力吃苦)可以考虑先谈朋友- ;; *)good bye!!! esac 2.简单case脚本 输入1.2.3分别输出对应的值 [[email protected] jiaobenlianxi]# c

shell脚本编程基础之case语句

基础简介 脚本编程分为: 面向过程 选择结构:if语句,单分支.双分支.多分支:case语句 控制过程:顺序结构(默认) 循环结构 面向对象 case语句结构 case VAR_NAME in var_value1) #value被当做字符一个一个进行比较的:可以使用a-z,A-Z,0-9,[abc] statement1 ... ;; var_value2) statement2 ... ;; *) statement ... ;; esac case示例 Example1: #!/bin/b

Linux shell脚本编程入门(二) 循环语句

前面有了变量的概念和逻辑运算符,就可以写判断语句了,不过这里注意中括号的两边必须得留空格,不然报错. 运算符 赋值, 用 let 语句, 如 let "a=1" 算数运算, 支持 +  -  *  /  %(模运算)  **(幂运算) 位运算符, 支持 <<(左移)  >>(右移)  &(按位与)  |(按位或)  ~(按位取反)  ^(按位异或) if / then / else 语句 先举个栗子呗~ #!/bin/bash read var1 if

shell脚本笔记二:for语句

for 变量 in 循环; do       statementdone 练习: 写一个脚本计算1到100的所有整数合 #!/bin/bash # declare -i SUM=0 for I in {1..100}: do let SUM=$[$SUM+$I] done echo "The sum is $SUM"

使用if语句编写Shell脚本

在简单的shell脚本程序中,各条语句将按先后顺序依次执行,从而实现批处理的自动化过程.然而,单一的顺序结构使得脚本不够智能,难以处理更加灵活的系统任务.通过正确的使用if语句,使得shell脚本具有一定的判断能力,以根据不同的条件来完成不同的任务管理. 条件测试操作 要使shell脚本具有一定的智能,就必须使其区分在不同的条件下执行哪种操作.例如,当磁盘使用率超过95%时发送告警消息等 可使用专门的测试工具test命令,对特定的条件进行测试,并根据返回值($?)来判断条件是否成立,返回值为0表

Linux | shell脚本-条件判断if和循环语句for

一.简介 上个章节中,我们学习了判断语句和运算语句.shell脚本中,这些判断语句一般都是和if.else.elif.for和while等语句一起使用. 在脚本编写中,条件判断语句常常用于多种情况的判断,符合哪一种情况就执行哪一种的命令. 二.shell条件判断语句:if 1.流程控制:if单分支结构 语法: if 条件判断:then 条件判断成功时执行的操作 ... fi 例子: 结合整数值比较-eq:检查主机是否在线 vim test1.sh运行结果:2.流程控制:if双分支结构 语法: i

shell脚本之流程控制

shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语句break 循环控制shift命令 创建无限循环 while的特殊用法 for的特殊用法 select循环与菜单 select与case 信号捕捉trap 条件语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为

shell脚本前奏

一.正则表达式: 正则表达式(Regular Expression,简称RE)就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式.即一种匹配模式 常用正则表达式: 1. .代表任意单个字符,如:/l..e/,le中间可以是任意两个字符. 2. ^:以...开始的行 3. $:以....结束的行   "^$"就表示空行 4. [...]:匹配括号中的字符之一 "^"如果出现在[]的起始位置,表示否定,在其他位置是普通字符.(即匹配不在此括号中的任

shell脚本扩展

一.正则表达式: 正则表达式(或称Regular Expression,简称RE)就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.简单的说,正则表示式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让使用者轻易的达到搜寻/删除/取代某特定字符串的处理程序.vim.grep.find.awk.sed等