`

【Linux基础篇】退出、测试、判断及运算符

 
阅读更多

退出状态

Linux系统中,每个命令执行完成后,系统都会返回1个退出状态来表示命令执行是否正确

最后1次执行的退出状态值保留在内置变量 $? 中,通过echo $? 可判断命令是否执行成功

 

POSIX规定的几种退出状态值:

0            运行成功,未出现任何问题

1~125    运行失败,脚本命令,系统命令错误,或者参数传递错误等

126        找到命令但无法执行

127        未找到命令或无效命令

>128      命令被系统强制结束

 

测试命令

判断某个条件或某组条件是否成立,如果为真,则返回0,为假,则返回非0值

测试命令有两种方式:

test expression

[ expression ]

"[" 启动测试,在"[" 与 "]"之间,前后空格不能省略

第2种方式,常与if、case、while语句联合使用

 

整数比较运算符

-eq  等于

-ge  大于等于

-gt   大于

-le   小于等于

-lt    小于

-ne  不等于

 

num=100

[ "$num" -ge 100 ]

echo $?

 

字符串比较运算符

string                       测试字符串是否不为空

-n string                   测试字符串是否不为空

-z string                    测试字符串是否为空

string1 = string2       测试字符串是否相等

string1 != string2      测试字符串是否不等

 

str1="Hello"

[  "$str1" = "hello" ]

echo $?

1  #退出状态为1,表示不相等

 

 

 文件操作符

test file_operator File  或

[ file_operator  File ]

File可以是文件名、目录、文件路径等

 

-d   file   测试file是否为目录

-f    file   测试file是否为普通文件

-e   file   测试file是否存在

-s   file    测试file长度是否不为0

-r    file   测试file是否为可读权限

-w  file    测试file是否为可写权限

-x   file    测试file是否为可执行权限

-L   file    测试file是否符号化链接

 

 [ -d file_exam ]  判断文件是否为目录

 [ -f file_exam ]   判断文件是否为文件

 [ -e file_exam ]  判断是否存在,创建或删除1个文件后,判断是否创建或删除成功

 

 

逻辑运算符

用来与测试命令联合使用

与、或、非

! expression   非(not)

expression1 -a expression2  且(and)

expression1 -o expression2  或(or)

 

[ -e fiel1 -a -x file1 ]   #测试fiel1是否存在且可执行  

[ "$integer1" -lt 5 -o "$integer1" gt 10 ] #测试integer1小于5或者大于10

 

 

 

 

条件判断

根据不同的条件执行不同的语句

 

if 

if expression

then

command1

command2

fi

注意:测试条件expression后面没有分号,则then语句必须换行

 

if和then可以处于同一行,必须使用 ";" 来终止if语句

if expression;then

command1

command2

fi

 

#!/bin/bash

echo "input your name"

read name  #读取键盘输入,并赋值给变量name

if [  -z "$name"  ];then

echo "name cannot be null"

fi

 

 

if...else

 

if expression;then

command1

command2

else

command3

fi

 

if...elif...else

 

if expression1;then

command1

command2

elif expressionN

command3

elif expressionX

command4

else

command5

fi

 

 

case选择

case variable in

value1)

comamnd1;;

value2)

command2;;

valueN)

commandN;;

*)

commandDefault;;

 esac

 

case结构的变量值variable逐个与value1,value2,...,valueN进行比较,直到找到匹配项

如果找到,则执行该项下面的语句,遇到";;"时,直接跳出case到esac

否则,执行"*)"下面的语句,直到";;"时结束

 

#!/bin/bash

echo "input you favor number"

read number1

case "$number1" in

1)

echo "You are good!";;

2)

echo "You are bad!!";;

*)

echo "You are nothing!!!";;

esac

 

 

运算符

算术运算符

+    加  (+=)

-    减   (-=)

*    乘   (*=)

/    除    (/=)

%  取余   (%=)   10%3 = 1

**  幂运算 (**=)   5**3 = 125

 

位运算符

<<  (<<=)  左移  即*2  左移n位,即乘以2的n次幂

>>  (>>=)  右移  即/2   右移n位,即除以2的n次幂

&    (&=)    按位与

|      (|=)     按位或

~     (~=)    按位异或

^      (^=)    按位取反

 

自增自减运算

++variable   先自增再参与运算

variable++   先参与运算再自增

--variable     先自减再参与运算

variable--     先参与运算再自减

 

数字常量

Linux Shell默认将数字按10进制处理

如果要使用其它进制,需要对其进行特殊标记

当使用数字0作为前缀,表示8进制

当使用0x进行标记,表示16进制

 

另外,还可以使用#num进行标记

8#    则表示8进制,如8#75

16#  则表示16进制,如16#F9

注意:num#后面跟的数字不能超过其对于进制中最大数值范围

如,2#20则错误,因为2进制范围是0~1,2已经超出有效范围。

 

 

 

 

分享到:
评论

相关推荐

    linux C编程实战

    第一篇 Linux和C编程基础  第1章 Linux系统概述  1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    linux C编程实战 电子书part5

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    Linux复习资料,基于CentOS7

    这篇复习资料专注于CentOS7,这是一个长期支持版本的Linux发行版,以其稳定性和企业级特性而受到欢迎。以下是对这些文件内容的详细解读: 1. **基础知识** (Linux上机实验1-基础知识.doc) - Linux系统结构:介绍了...

    linux C编程实战 电子书part2

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    linux C编程实战 电子书part3

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    linux C编程实战 电子书part4

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    linux C编程实战 电子书part1

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    linuxC编程实战.part2.rar(文件已加密)

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    linuxC编程实战.part5.rar

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    linuxC编程实战.part3.rar

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    linuxC编程实战.part4.rar

    第一篇 Linux和C编程基础  第1章 Linux系统概述   1.1 Linux操作系统介绍   1.1.1 Linux的发展历程   1.1.2 Linux的特性   1.1.3 Linux的内核版本和发行版本   1.2 C语言简介   1.2.1 C语言的...

    Linux用if判断目录是否存在实例方法

    这篇文章主要聚焦于如何利用if语句判断一个目录是否存在,这对于编写自动化脚本或者进行系统验证时尤其实用。以下是对标题和描述中所述知识点的详细说明: 1. **if语句基础** if语句在bash shell编程中用于基于...

    linux主要shell命令

    Bash(Bourne-Again SHell)是最常见的Linux Shell,本篇将详细讲解Bash的基础知识,包括脚本语法、变量使用、条件判断和循环结构。 1. Linux Bash Shell脚本语法入门: 在Bash脚本中,第一行通常为`#!/bin/bash`...

    linux与unix shell编程指南21-24.rar_Linux shell_Linux与Unix SHELL编程指南_l

    这篇文章系列涵盖了从基础到进阶的Shell编程知识,包括变量、条件判断、循环结构、函数定义、文件处理以及错误处理等方面。 首先,让我们从基础开始。在Shell编程中,变量用于存储数据,可以通过`变量名=值`的形式...

    LINUX与UNIX SHELL编程指南

    第一部分,基础篇,会引导读者了解SHELL的基本概念,包括SHELL的种类(如Bash、Ksh、Csh等),如何启动和退出SHELL,以及SHELL变量和环境设置。这一部分还将介绍SHELL脚本的基本结构,如如何编写注释、定义变量和...

    linux shell 提高

    本篇将深入探讨Linux Shell在实际工作中的应用及其重要性。 一、Shell的基本概念 Linux Shell是一种解释器,它接收用户输入的命令并执行。常见的Shell类型有Bash(Bourne-Again SHell)、C Shell、Korn Shell和Z ...

    零基础入门C语言-王桂林 -v2-.pdf

    书籍内容涵盖了C语言的多个基础知识点,包括编程环境的搭建、Linux基础命令、C语言的基本语法、数据类型、变量、内存模型、运算符和表达式等。下面详细展开介绍这些知识点。 首先,书中提到了C语言的入门示例——...

    shell基础知识12篇

    **Shell基础知识12篇** Shell,作为Linux和Unix操作系统中的命令解释器,是用户与操作系统交互的重要工具。它不仅能够执行系统命令,还能通过编写脚本实现自动化任务,极大地提高了工作效率。以下是一些关于Shell的...

    linuxshell编程

    本篇文章将深入探讨Linux Shell编程的核心概念、常用命令以及如何编写实用的Shell脚本。 一、Linux Shell简介 Linux Shell是Linux操作系统中的一种命令解释器,它为用户提供了一个与系统交互的界面。常见的Shell有...

    ABS中文版

    - 涵盖了条件判断语句的使用,包括文件测试操作符、数值比较以及其他逻辑运算符。 8. **第8章:运算及相关话题** - 包括了算术运算符、数值常量等内容。 9. **第9章:变量再探** - 进一步探讨了内部变量、字符...

Global site tag (gtag.js) - Google Analytics