`

linux bash基础之流程控制

 
阅读更多

条件语句

算术比较

条件通常被放置在封闭的中括号内。一定要注意在[或]与操作数之间有一个空格。如果忘记了这个空格,脚本就会报错。例如:
[ $var-eq 0 ] var等于0时,返回真 ; [ $var-ne 0 ]var为非0时,返回真

重要的操作符:

语法 作 用
-gt 大于。
-lt 小于。
-ge 大于或等于。
-le 小于或等于
-eq 等于
-ne 不等于

可以按照下面的方法结合多个条件进行测试:

  • [ $var1 -ne 0 -a $var2 -gt 2 ] # 使用逻辑与-a
  • [ $var -ne 0 -o $var2 -gt 2 ] # 逻辑或 -o

字符串比较

使用字符串比较时,最好用双中括号,因为有时候采用单个中括号会产生错误,所以最好避开它们。
可以检查两个字符串,看看它们是否相同.

语法 作 用
[[ $str1 = $str2 ]] 当$str1等于$str2时,返回真。也就是说,$str1和$str2包含的文本是一模一样的。
[[ $str1 == $str2 ]] 这是检查字符串是否相等的另一种写法。也可以检查两个字符串是否不同。
[[ $str1 != $str2 ]] 如果$str1和$str2不相同,则返回真。我们还可以检查字符串的字母序情况,具体如下所示。
[[ $str1 > $str2 ]] 如果$str1的字母序比$str2大,则返回真。
[[ $str1 < $str2 ]] 如果$str1的字母序比$str2小,则返回真。
[[ -z $str1 ]] 如果$str1包含的是空字符串,则返回真。
[[ -n $str1 ]] 如果$str1包含的是非空字符串,则返回真。

使用逻辑运算符 && 和 || 能够很容易地将多个条件组合起来;if [[ -n $str1 ]] && [[ -z $str2 ]],非的语义 if [[ ! -n $str1 ]] ;注意空格

文件系统

语法 作 用
[ -f $file_var ] 如果给定的变量包含正常的文件路径或文件名,则返回真
[ -d $var ] 如果给定的变量包含的是目录,则返回真。
[ -e $var ] 如果给定的变量包含的文件存在,则返回真。
[ -w $var ] 如果给定的变量包含的文件可写,则返回真。
[ -r $var ] 如果给定的变量包含的文件可读,则返回真。
[ -c $var ] 如果给定的变量包含的是一个字符设备文件的路径,则返回真。
[ -b $var ] 如果给定的变量包含的是一个块设备文件的路径,则返回真。
[ -x $var ] 如果给定的变量包含的文件可执行,则返回真。
[ -L $var ] 如果给定的变量包含的是一个符号链

控制语句

if 语句

我们可以用if、if else以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项。

if [ condition]
then 
	commands
else
	commands
fi

值得注意的是如果then 和 if 判断在同一行 需要加上 “;”

for 循环

形式1

值之间用空格分隔

for 变量 in XXX
	do 
		程序
	done
# 示例 1
for item in 1 2 3
    do
        echo $item
    done	
# 示例 2	
for item in $(ls ~)
    do
        echo $item
    done
# 示例 3
for 变量 in `seq 1 100`
	do 
		程序
	done

形式2

用seq

for ((初始值;控制条件;变量变化))
	do
		程序
	done

while 循环

while [条件判断式]
	do
		程序
	done

附 特殊符号

符 号 作 用
‘’ 单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。
“” 双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
`` 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样,不过推荐使用$(),因为反引号非常容易看错。
$() 和反引号作用一样,用来引用系统命令。
# 在Shell脚本中,#开头的行代表注释。
$ 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
\ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当做是变量引用。
分享到:
评论

相关推荐

    linux bash手册(英文,version 4.2)

    在手册的这一部分,会解释在Bash中使用的各种术语,例如变量、命令、通配符、重定向等,这些是理解和编写Bash脚本的基础。 4. **基本Shell特性** - **Shell语法**:包括如何构造命令,使用不同的操作符,以及如何...

    Linux Bash Shell快速入门

    Linux Bash Shell快速入门是针对初学者的指导性文章,它从编写简单的“Hello World”程序开始,逐步介绍Bash Shell的基础知识和语法。本文重点讨论了以下几个方面:Bash Shell的基本语法,变量的使用和与C语言的异同...

    LinuxBash脚本编程大全

    在IT行业中,Linux Bash脚本编程是系统管理员、开发者以及自动化任务执行者不可或缺的技能之一。Bash(Bourne-Again SHell)是Linux和Unix操作系统中最常用的命令行解释器,也是编写shell脚本的主要工具。《Linux ...

    linux_bash

    4. **流程控制**:`if`、`else`、`fi`用于条件判断,`for`、`done`用于循环。 5. **命令别名**:`alias ll='ls -l'`可以定义`ll`为`ls -l`的别名。 6. **函数**:`function fun() { commands; }`定义一个名为`fun`的...

    Linux Bash脚本编程大全_超清版

    Linux Bash脚本编程是Linux系统管理与自动化任务执行的核心技能之一。Bash,全称Bourne-Again SHell,是Unix及Linux操作系统中最常用的命令行解释器,它提供了丰富的命令行工具和强大的脚本编写能力。这本书《Linux ...

    linux bash脚本编程大全

    这份"Linux Bash脚本编程大全"应该包含了关于Bash脚本的基础到高级的方方面面,帮助学习者全面掌握这一技能。 首先,了解Bash脚本的基础语法至关重要。这包括变量声明、赋值和操作,例如`VAR="value"`来创建一个...

    Linux_Shell_Scripting_with_Bash

    Linux Shell脚本编程是Linux系统管理、自动化任务和程序开发中的关键技能。Bash(Bourne-Again SHell)是Unix和Linux操作系统中最常用的Shell,它的强大功能和灵活性使得编写脚本变得简单而高效。本资料“Linux_...

    Linux Bash 详解

    这只是Bash基础的简单介绍,Bash还包括变量扩展、条件测试、流程控制、函数、输入/输出重定向、管道等更复杂的特性。对于想要深入学习Bash的初学者来说,理解这些基本概念是至关重要的,因为它们构成了编写高效和...

    Linux Bash脚本编程大全

    1. **Bash基础** - Shell简介:了解什么是Shell,它的作用以及Bash在其中的地位。 - Bash环境:设置环境变量、PATH变量,理解Shell启动过程。 - 命令行参数:了解$0到$9等特殊变量,以及如何传递和使用命令行参数...

    Linux bash基本语法笔记

    6. **流程控制** - **条件语句**:`if`、`else`、`fi`用于条件判断。 - **循环语句**:`for`、`while`、`until`进行循环操作。 - **案例语句**:`case`根据不同情况执行不同代码块。 7. **函数** - **定义函数*...

    Linux Shell Scripting with Bash

    - Bash(Bourne-Again SHell)是 Unix 和 Linux 系统中最常用的 Shell 类型之一。 - Bash 提供了丰富的功能,支持变量、数组、条件判断、循环等结构化编程特性。 **2. Bash Shell 脚本基础语法** - **脚本的第一...

    Linux Bash Guide Beginner

    《Linux Bash Guide for Beginners》是一本详尽的指南,旨在帮助初学者了解并掌握Bash脚本的基础知识及其在Linux环境中的应用。本书由Machtelt Garrels撰写,版本为1.11,最后一次更新时间为2008年12月27日。该指南...

    linux bash shell入门教程

    基本流程控制语法包括条件判断和循环控制,这些是构建复杂脚本的基础。条件语句如if、case等,可以让我们根据条件来执行不同的代码块。循环语句如for、while、until等,用于重复执行一段代码直到满足特定条件。 ...

    linux learning the bash shell

    Bash(Bourne Again SHell)是Unix/Linux操作系统中最常用的命令解释器之一,也是大多数Linux发行版的默认Shell。 #### 描述:Learn Bash Shell - **学习目标**:了解如何在Linux环境中使用Bash Shell进行操作。这...

    linux开发之bash编程

    在Linux开发中,Bash编程是一个基础但非常重要的技能。Shell脚本广泛应用于系统管理、安装、任务调度、网络管理等方面。由于Shell脚本能够将常用的命令序列整合到一个文件中,用户只需运行一个脚本文件即可完成一...

    linux bash

    Bash (Bourne Again SHell) 是一种广泛应用于 Linux 和 Unix 类系统中的 shell 程序。它不仅作为用户与操作系统之间的交互接口,还提供了丰富的脚本编程功能。Bash 提供了诸如文件名通配符、命令历史、别名、命令...

Global site tag (gtag.js) - Google Analytics