`
su1216
  • 浏览: 670394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
深入入门正则表达式(jav...
浏览量:71871
E60283d7-4822-3dfb-9de4-f2377e30189c
android手机的安全问...
浏览量:128680
社区版块
存档分类
最新评论

《Linux命令行与shell脚本编程大全》 第十一章

阅读更多

 

第一部分:Linux命令行
《Linux命令行与shell脚本编程大全》 第一章:初识Linux shell
《Linux命令行与shell脚本编程大全》 第二章:走进shell
《Linux命令行与shell脚本编程大全》 第三章:基本的bash shell命令
《Linux命令行与shell脚本编程大全》 第四章:更多的bash shell命令
《Linux命令行与shell脚本编程大全》 第五章:使用Linux环境变量
《Linux命令行与shell脚本编程大全》 第六章:理解Linux文件权限
《Linux命令行与shell脚本编程大全》 第七章:管理文件系统
《Linux命令行与shell脚本编程大全》 第八章:安装软件程序
《Linux命令行与shell脚本编程大全》 第九章:使用编辑器

第二部分:shell脚本编程基础
《Linux命令行与shell脚本编程大全》 第十章:构建基本脚本
《Linux命令行与shell脚本编程大全》 第十一章:使用结构化命令
《Linux命令行与shell脚本编程大全》 第十二章:更多的结构化命令
《Linux命令行与shell脚本编程大全》 第十三章:处理用户输入
《Linux命令行与shell脚本编程大全》 第十四章:呈现数据
《Linux命令行与shell脚本编程大全》 第十五章:控制脚本

第三部分:高级shell编程
《Linux命令行与shell脚本编程大全》 第十六章:创建函数
《Linux命令行与shell脚本编程大全》 第十七章:图形化桌面上的脚本编程
《Linux命令行与shell脚本编程大全》 第十八章:初识sed和gawk
《Linux命令行与shell脚本编程大全》 第十九章:正则表达式
《Linux命令行与shell脚本编程大全》 第二十章:sed进阶
《Linux命令行与shell脚本编程大全》 第二十一章:gawk进阶
《Linux命令行与shell脚本编程大全》 第二十二章:使用其他shell

第四部分:高级shell脚本编程主题
《Linux命令行与shell脚本编程大全》 第二十三章:使用数据库
《Linux命令行与shell脚本编程大全》 第二十四章:使用Web
《Linux命令行与shell脚本编程大全》 第二十五章:使用E-mail
《Linux命令行与shell脚本编程大全》 第二十六章:编写脚本实用工具
《Linux命令行与shell脚本编程大全》 第二十七章:shell脚本编程进阶

 

第十一章:使用结构化命令

使用if-then语句

if command
then
    commands
fi

如果if后面的命令退出状态码=0,那么就执行then

另外一种形式

if command; then
    commands
fi

 

if-then-else语句

if command
then
    commands
else
    commands
fi

如果if后面的命令退出状态码=0,那么就执行then,否则,执行else

 

嵌套if(else if)

if command1
then
    commands
elif command2
then
    commands
fi

 

test命令

test命令可以判断3类条件

1.数值比较

2.字符串比较

3.文件比较

格式:

test condition

在if语句中,可以使用方括号[]

if test condition
then
    commands
fi

或者

if [ command ]
then
    commands
fi

注意:方括号两边必须加入一个空格,不然会报错

 

数值比较

比较 描述
n1 -eq n2

检查n1是否与n2相等

n1 -ge n2 检查n1是否大于或等于n2
n1 -gt n2 检查n1是否大于n2
n1 -le n2 检查n1是否下雨或等于n2
n1 -lt n2 检查n1是否小于n2
n1 -ne n2 检查n1是否不等于n2

可以用在变量上

注意:不能使用浮点数

 

字符串比较

比较 描述
str1 = str2 检查str1是否和str2相同
str1 != str2 检查str1是否和str2不同
str1 < str2 检查str1是否比str2小
str1 > str2 检查str1是否比str2大
-n str1 检查str1的长度是否非0
-z str1 检查str1的长度是否为0

 

顺序比较需要注意:

1.大于小于符号要转义,不然会被识别为重定向符号                                                                                              

2.test命令根据ASCII顺序排序,与sort命令不同

 

 字符串长度

当变量为空字符串或者没有初始化时,变成长度是0

空字符串或没有初始化的变量可能会对程序有灾难性影响,使用前最好先使用test命令中的-n和-z确认

 

文件比较

比较 描述
-d file 检查file是否存在并且是否是一个目录
-e file 检查file是否存在
-f file 检查file是否存在并且是否是一个文件
-r file 检查file是否存在并可读
-s 检查file是否存在并非空
-w 检查file是否存在并可写
-x 检查file是否存在并可执行
-O 检查file是否存在并属于当前用户所有
-G 检查file是否存在并且默认组与当前用户相同

file1 -nt file2

检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧

以检查目录为例:

if [ -d $HOME ]
then
    cd $HOME
else
    echo "$HOME is not a directory"
fi

 

复合条件测试

[ condition1 ] || [ condition2 ]

[ condition1 ] && [ condition2 ]

 

if-then的高级特性

1.用于数学表达式的双圆括号

2.用于高级字符串处理的双方括号

双圆括号允许将高级数学表达式放入比较中

格式:

(( expression ))

命令符号

符号 描述
val++ 后增
val-- 后减
++val 先增
--val 先减
! 逻辑求反
~ 位求反
** 幂运算
<< 左位移
>> 右位移
& 位布尔和
| 位布尔或
&& 逻辑和
|| 逻辑或

 

双方括号格式

[[ expression ]]

提供了模式匹配(pattern matching)特性,可以在其中使用正则表达式

if [ $USER == r* ]

 

case命令

命令格式:

case variable in
pattern1 | pattern2) commands1;;
pattern3) commands2;;
*) default commands;;
esac

bash中是可以在case中检查字符串的

从java到bash,语法转变还是很大的,不过思想是不会变的

下面是一个简单的示例:

case $test in
pork | beef | lamb )
    echo "$test is meat!"
    echo "I like it!";;
potato | tomato | eggplant )
    echo "$test is a vegetable"
    echo "who likes it?";;
*)
    echo "what's this?";;
esac

在java7之前,这么写是不可以的,switch case中不支持string类型

 

 

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

2
1
分享到:
评论

相关推荐

    Linux Shell命令行及脚本编程实例详解PPT

    刘艳涛的《Linux Shell命令行及脚本编程实例详解》是清华大学出版社出版的一本教程,深入浅出地介绍了Shell的使用和脚本编程技巧。 **第2章 初识Linux Shell.pptx** 这一章节可能涵盖了Shell的基础概念,包括什么是...

    Linux Shell命令行及脚本编程实例详解

    第十一章“Shell重定向”讲解了如何改变程序的标准输入、输出和错误输出,使得数据可以被重定向到文件、管道或其他进程。这是实现数据流程控制的关键,也是Shell强大之处的体现。 第十二章“管道和过滤器”则涉及...

    linux_Shell(脚本)编程入门_实例讲解详解.pdf

    Linux Shell脚本编程是Linux系统管理中不可或缺的一部分,它允许用户通过编写命令脚本来自动化重复性的任务,提高工作效率。在Linux环境中,虽然图形界面工具众多,但Shell由于其灵活性和强大的功能,始终扮演着核心...

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...

    LINUX与UNIX SHELL编程指南(很全)

    第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 11.1.5 sort对域的参照方式 105 11.1.6 文件是否已分类 105 11.1.7 基本sort 106 ...

    linux shell 命令, 脚本编程

    ### Linux Shell 命令与脚本编程知识点详解 #### 第一部分:Shell ##### 第1章:文件安全与权限 **1.1 文件** - **定义**:在Linux系统中,几乎所有东西都被视为文件,包括目录、设备等。 - **用途**:用于存储...

    快乐的Linux命令行.docx

    同时,本书还会介绍一些高级主题,如shell脚本编程、正则表达式、网络编程等。 4. 谁应该读这本书 本书适合所有想学习 Linux 命令行的读者,无论是初学者还是经验丰富的开发者。本书将提供详细的解释和示例代码,...

    Linux shell 脚本攻略

    本书《Linux Shell脚本攻略》(第2版)深入浅出地介绍了Shell脚本的编写技巧和实战应用,非常适合对Linux感兴趣的初学者学习。 **Shell脚本基础** 1. **Shell介绍**:Shell是Linux的命令解释器,它提供了一个与...

    Linux命令行大全中文版(CHM格式)

    除了基础命令,这份大全可能还涵盖了高级命令和脚本编程,如管道(|)、重定向(&gt;、&lt;、&gt;&gt;)、进程控制(&、bg、fg、jobs)、环境变量设置、以及shell编程语法等。 了解并熟练掌握这些命令对于Linux用户来说至关重要...

    linux与unix shell编程指南

    《Linux与Unix Shell编程指南》是一本深入探讨操作系统命令行界面和脚本编程的书籍,主要针对Linux和Unix系统中的Bash Shell。本书分为29个章节,涵盖了从基础概念到高级技巧的全面内容,旨在帮助读者掌握Shell编程...

    Linux与unix shell编程指南

    第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 11.1.5 sort对域的参照方式 105 11.1.6 文件是否已分类 105 11.1.7 基本sort 106 ...

    Linux命令行大全中文版(CHM格式).rar

    书中可能还包括对shell脚本编程的介绍,如变量、条件语句、循环结构等。 通过阅读这本书,读者不仅可以了解每个命令的基本用法,还能学习到如何组合使用命令以实现更复杂的任务。掌握这些命令行技巧,无论是日常的...

    LINUX与UNIX SHELL编程指南--part1

    接下来的章节可能会逐步深入到Shell脚本编程,第四章可能涵盖变量和参数,第五章可能涉及条件语句(if-then-else)和逻辑运算符,这些是编写复杂脚本的基础。第六章可能是关于循环结构,如for和while循环,它们在...

    Linux与Unix Shell编程指南11-20

    《Linux与Unix Shell编程指南11-20》是一本深度探讨Shell编程的教程,涵盖了从第11章到第20章的关键内容。在Unix和Linux系统中,Shell不仅是一个命令行解释器,更是编写自动化脚本的强大工具。本指南深入浅出地介绍...

    Linux命令行中文版

    第十一章:进程 本章节主要讲述了 Linux 进程的基本概念和管理,包括进程的创建、执行和结束等。 第十二章:shell 环境 本章节主要介绍了 shell 的环境变量和配置,包括环境变量的设置和使用等。 第十三章:VI ...

    Linux与Unix Shell编程指南

    6. **第十九章:向脚本传递参数** - 介绍了如何在Shell脚本中接收和处理命令行参数,包括位置参数、特殊参数`$#`、`$*`和`$@`,以及`shift`命令的应用。 7. **第二十一章:创建屏幕输出** - 讨论了如何通过Shell...

    LINUX与UNIX SHELL编程指南LINUX与UNIX SHELL编程指南24

    《LINUX与UNIX SHELL编程指南》第24章主要探讨了SHELL的嵌入式命令,这些命令是直接在shell环境中内置的,而非存在于/bin或/usr/bin等系统目录下。由于它们直接由shell执行,因此执行速度相对较快。本章详细介绍了多...

    LinuxCLAndShell:Linux命令行和Shell编程学习

    本文将深入探讨“LinuxCLAndShell:Linux命令行和Shell编程学习”这一主题,尤其是第3章——基本命令。 Linux命令行界面,通常称为终端或控制台,是用户与操作系统交互的主要方式之一。通过键盘输入命令,用户可以...

    LINUX与UNIX SHELL编程指南

    - Shell脚本可以接收命令行参数,`$0`表示脚本本身,`$1`到`$9`分别表示第一个到第九个参数。 - `shift`命令可以改变参数的位置,`shift 2`会将`$3`变成新的`$1`。 6. **控制结构** - 条件测试:`if`、`[[`和`...

Global site tag (gtag.js) - Google Analytics