`

《Linux Shell》之六:判断与循环

阅读更多

7.1 退出状态

退出状态为0表示命令运行成功,不为0表示命令运行失败。最后一次命令退出状态值被保存在"$?"中。

7.2 测试与判断

测试命令用于测试表达式真假,如果测试条件为真,返回0;否则返回非0。这一点跟C语言不一样。

[ expression ] ,请注意[]中[后面要有一个空格, ]前面要有一个空格。

在linux中,整数比较跟字符串比较是完全不一样的格式。

整数比较运算符:

整数比较运算符 描述
num1 -eq num2 如果num1等于num2,结果为0
num1 -ge num2 如果num1大于等于num2,结果为0
num1 -gt num2 如果num1大于num2,结果为0
num1 -le num2 如果num1小于等于num2,结果为0
num1 -lt num2 如果num1小于num2,结果为0
num1 -ne num2 如果num1不等于num2,结果为0

bash只能对整数使用比较运算符,如果是浮点数,需要使用特定的函数。

 

字符串运算符:

字符串运算符  
-n string 测试字符串string是否不为空
-z string 测试字符串是否为空
string1 = string2 测试字符串是否相等
string1 != string2 测试字符串是否不相等

字符串比较时建议字符串变量使用双引号,即使变量为空,同样也要使用双引号。

# [ -n "$str" ]

# [ "$str1" = "$str2" ]

在linux shell中,字符串赋值和整数赋值没有区别,所以在整数比较时注意不要使用字符串比较运算符。

 

7.2.4 文件操作符:

格式为: [ file_operator file ]

file_operator为文件操作符,file为文件名、目录名等。

几个典型的文件操作符:

文件操作符 描述
-d file 测试file是否为目录
-e file 测试file是否存在
-f file 测试file是否为普通文件
-r file 测试file是否可读
-w file 测试file是否可写
-x file 测试file是否可执行
-s file 测试file的大小是否大于0
-L file 测试file是否为符号链接

 

7.2.5 逻辑运算符:

! expression   非

exp1 -a exp2  与

exp1 -o exp2  或

# [ "$var" -ge 10 -a "$var" -le 100 ]

 

7.3.1 判断:

if expression; then

   command;.....

elif expression; then

   command;....

else

   command;...

fi

 

case "$mouth" in

1)

   echo "one";;

2)

   echo "two";;

*)

   echo "other";;

esac

 

7.3.2 exit 命令

# exit status

错误返回一个非0值,或保存在$?这个变量中去。

 

7.4.1 算术运算符

算术运算符包括:+、-、*、/、%、**(幂运算符)

整数做除法运算时候或舍弃小数部分,忽略四舍五入,最终结果为整数部分。

直接赋值的时候,shell默认都是字符串赋值,要想让它成为整数赋值,可使用let命令:

# let z=8/5*5

对于浮点数,需要使用专门的函数,这一点跟C语言是不一样的。

复合赋值: +=  -=  *= /= %=

 

7.4.2 位运算符

<< 左移   >>右移  &按位与  |按位或  ~按位取反  ^按位异或

 

7.4.3 数字常量

默认shell是以10进制表示数字,如果想以其他进制,可使用0(8进制)或0x(16进制)作为前缀

或者可以使用num#作为前缀

比如:# let "num=2#10000111111001010"

 

for循环:

for i in {1..100..2}

do

    let "sum+=i"

done

echo "sum=$sum"

上面的for循环也可以用seq来简写:

for i in $(seq 1 2 100)

do 

    let "sum+=i"

done

echo "sum=$sum"

-------

for file in $(ls)

do

    echo "file:$file"

done

-------

for ((var=1; var<=5; var++))

do

     echo "var=$var"

done

---------

#!/bin/bash
signal=0
num=4
while (("$signal" != 2))
do
        if [ "$num" -gt 3 ]; then
                echo "goodman..."
        fi
        let "signal++"
done

 -------九九乘法表-----------

#!/bin/bash

for ((i=1;i<=9;i++))
do
    for ((j=1;j<=i;j++))
    do
        # let "temp = i * j"
        echo -n -e "$j*$i=$((i*j))\t"
    done
    echo ""
done

 

select的用法:提供一个选择列表给用户区选择

#!/bin/bash

echo "What is your favorite color?"
select color in "red" "blue" "green"
do
    break
done

echo "you have selected $color"

 

本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论

相关推荐

    Linux shell数组循环的实例详解

    shell数组循环 测试shell数组,循环的例子: arr=(a b c) echo 所有的内容如下:${arr[@]} echo 数组的长度:${#arr[*]} ... 您可能感兴趣的文章:Shell获取字符串长度的多种方法总结用Shell判断字符串包含

    linux shell循环:for、while、until用法详解

    在Linux Shell编程中,循环是不可或缺的一部分,它允许我们重复执行一段代码,直到特定条件不再满足。本篇文章将深入探讨三种常见的循环结构:for、while和until。 **1. for循环** for循环常用于已知循环次数的...

    Linuxshell编写demo

    在IT行业中,Linux Shell编程是系统管理员和开发者必备的技能之一。它允许用户通过命令行接口与操作系统进行交互,执行自动化任务,大大提高工作效率。本文将深入探讨Linux Shell编写的基础知识,包括基本概念、常用...

    Linuxshell大作业.pdf

    8. 循环与条件判断:文档中出现循环控制结构(while、do...done)和条件判断结构(if、elif、else),这是Shell编程中常用的控制逻辑。 9. 脚本使用交互式输入:文档显示脚本需要用户的交互式输入,例如读取用户名...

    Linux shell 详细教程

    2. **条件语句与循环**:学习if、else、fi、case等条件判断语句,以及for、while、until等循环结构。 3. **函数定义**:理解如何在Shell中定义和调用函数,提高代码复用性。 4. **流程控制**:掌握break、continue...

    Shell脚本—判断循环

    ### Shell脚本—判断循环:深入理解与应用 #### shell基础简单循环判断语句解析 在Shell编程中,循环和判断语句是控制流程的核心工具,它们允许脚本执行重复的任务并基于条件作出决策。本章节将从Shell脚本的基础...

    Linux Shell Scripting(linux shell编程)

    - **Bash Shell**:Bash是GNU Project的一部分,是Unix/Linux系统中最常用的Shell之一。它是大多数Linux发行版的默认Shell。 - **Zsh Shell**:Zsh是另一个功能强大的Shell,提供了许多高级特性,如自动补全等。 - *...

    新版Linux Shell编程实训(全)20170518.docx

    7. **Shell流程控制**:详细介绍了if判断、for、while、until循环以及case选择语句,还提供了使用循环结构打印九九乘法表的案例。 8. **Shell函数**:学习如何在Shell中定义函数,处理函数参数,并给出实用的函数...

    linux shell 脚本入门

    Linux Shell脚本是Linux系统中用于自动化任务的强大工具,它基于Bash或其他Shell解释器,允许用户编写一系列命令,以实现批处理、任务调度或任何需要自动化的工作流程。本PDF文档"shell-script-entry.pdf"提供了18页...

    Linux Shell编程.

    **Shell** 在 Unix/Linux 系统中扮演着极其重要的角色,既是用户与操作系统交互的主要接口,也是一种强大的编程语言。通过 Shell 编程,用户不仅可以自动化执行一系列命令,还可以编写复杂的脚本来完成特定任务。 #...

    《Linux shell脚本全面学习》pdf版电子书

    ### Linux Shell脚本全面学习知识点概述 #### 一、Linux脚本编写基础 **1.1 语法基本介绍** **1.1.1 开头** - **解释**: 每个Shell脚本都需要以 `#!/bin/sh` 开始,这行被称为shebang,用于指示系统如何执行此...

    linux shell

    Linux Shell编程是Linux系统中一个极其重要的组成部分,它充当了用户与操作系统内核之间的接口,允许用户通过命令行与系统进行交互。Shell不仅提供了一系列内置命令,还支持编写脚本,使得复杂的自动化任务变得可能...

    Linux Shell 参考文档

    Linux Shell 是Linux操作系统中用于与系统交互的一种命令行接口,它是用户与Linux内核之间的桥梁。Shell不仅可以执行单一的命令,还可以通过脚本文件执行一系列命令,极大地提高了工作效率。这篇参考文档将深入探讨...

    linuxshell.rar帮助文档 简单实用

    这份“linuxshell.rar帮助文档”旨在提供关于Linux Shell的基础知识和实用技巧,帮助用户提高在终端中的操作效率。 一、Shell简介 Linux Shell是Linux系统中的一个核心组件,常见的有Bash(Bourne Again SHell)、...

    Linux shell编程 验证身份证号码(15/18)

    根据给定的Linux shell脚本,我们可以深入探讨与身份证号码验证相关的知识点,特别是针对中国身份证号码的15位和18位格式的处理方法。以下是对脚本中关键部分的详细解析: ### Linux Shell编程验证身份证号码 ####...

    LINUX SHELL 脚本攻略

    Linux Shell脚本攻略是一本针对Linux操作系统下Shell脚本编写的指导书籍。Shell脚本是利用Shell编程语言来控制和自动化命令序列的脚本,常用于系统管理、服务器管理、自动化任务处理等领域。本书的第三版包含了全面...

    Linux Shell Scripting Cookbook Second Edition

    之后是脚本内容,可以包括变量赋值、条件判断、循环控制、函数定义以及各种Linux命令。 Shell脚本能够处理多种文本和数据,包括字符串和数字的比较、文件的读写、文本的搜索和替换等。这些操作在进行数据处理和日志...

    linux Shell 编程实例书一本

    Linux Shell编程是Linux系统管理与自动化任务的核心技术之一。Shell脚本可以理解为Linux环境下的批处理程序,它允许用户通过编写脚本来执行一系列命令,从而实现自动化操作,提高工作效率。这本书《Linux Shell编程...

Global site tag (gtag.js) - Google Analytics