第一部分: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地址
相关推荐
刘艳涛的《Linux Shell命令行及脚本编程实例详解》是清华大学出版社出版的一本教程,深入浅出地介绍了Shell的使用和脚本编程技巧。 **第2章 初识Linux Shell.pptx** 这一章节可能涵盖了Shell的基础概念,包括什么是...
第十一章“Shell重定向”讲解了如何改变程序的标准输入、输出和错误输出,使得数据可以被重定向到文件、管道或其他进程。这是实现数据流程控制的关键,也是Shell强大之处的体现。 第十二章“管道和过滤器”则涉及...
Linux Shell脚本编程是Linux系统管理中不可或缺的一部分,它允许用户通过编写命令脚本来自动化重复性的任务,提高工作效率。在Linux环境中,虽然图形界面工具众多,但Shell由于其灵活性和强大的功能,始终扮演着核心...
《LINUX与UNIX Shell编程指南》是一本专为初学者设计的shell编程教程,它深入浅出地介绍了在Linux和UNIX系统中如何使用Shell进行高效自动化任务处理。Shell编程是Linux和UNIX系统中的核心技术,它允许用户通过命令行...
第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 命令与脚本编程知识点详解 #### 第一部分:Shell ##### 第1章:文件安全与权限 **1.1 文件** - **定义**:在Linux系统中,几乎所有东西都被视为文件,包括目录、设备等。 - **用途**:用于存储...
同时,本书还会介绍一些高级主题,如shell脚本编程、正则表达式、网络编程等。 4. 谁应该读这本书 本书适合所有想学习 Linux 命令行的读者,无论是初学者还是经验丰富的开发者。本书将提供详细的解释和示例代码,...
本书《Linux Shell脚本攻略》(第2版)深入浅出地介绍了Shell脚本的编写技巧和实战应用,非常适合对Linux感兴趣的初学者学习。 **Shell脚本基础** 1. **Shell介绍**:Shell是Linux的命令解释器,它提供了一个与...
除了基础命令,这份大全可能还涵盖了高级命令和脚本编程,如管道(|)、重定向(>、<、>>)、进程控制(&、bg、fg、jobs)、环境变量设置、以及shell编程语法等。 了解并熟练掌握这些命令对于Linux用户来说至关重要...
《Linux与Unix Shell编程指南》是一本深入探讨操作系统命令行界面和脚本编程的书籍,主要针对Linux和Unix系统中的Bash Shell。本书分为29个章节,涵盖了从基础概念到高级技巧的全面内容,旨在帮助读者掌握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 ...
书中可能还包括对shell脚本编程的介绍,如变量、条件语句、循环结构等。 通过阅读这本书,读者不仅可以了解每个命令的基本用法,还能学习到如何组合使用命令以实现更复杂的任务。掌握这些命令行技巧,无论是日常的...
接下来的章节可能会逐步深入到Shell脚本编程,第四章可能涵盖变量和参数,第五章可能涉及条件语句(if-then-else)和逻辑运算符,这些是编写复杂脚本的基础。第六章可能是关于循环结构,如for和while循环,它们在...
《Linux与Unix Shell编程指南11-20》是一本深度探讨Shell编程的教程,涵盖了从第11章到第20章的关键内容。在Unix和Linux系统中,Shell不仅是一个命令行解释器,更是编写自动化脚本的强大工具。本指南深入浅出地介绍...
第十一章:进程 本章节主要讲述了 Linux 进程的基本概念和管理,包括进程的创建、执行和结束等。 第十二章:shell 环境 本章节主要介绍了 shell 的环境变量和配置,包括环境变量的设置和使用等。 第十三章:VI ...
6. **第十九章:向脚本传递参数** - 介绍了如何在Shell脚本中接收和处理命令行参数,包括位置参数、特殊参数`$#`、`$*`和`$@`,以及`shift`命令的应用。 7. **第二十一章:创建屏幕输出** - 讨论了如何通过Shell...
《LINUX与UNIX SHELL编程指南》第24章主要探讨了SHELL的嵌入式命令,这些命令是直接在shell环境中内置的,而非存在于/bin或/usr/bin等系统目录下。由于它们直接由shell执行,因此执行速度相对较快。本章详细介绍了多...
本文将深入探讨“LinuxCLAndShell:Linux命令行和Shell编程学习”这一主题,尤其是第3章——基本命令。 Linux命令行界面,通常称为终端或控制台,是用户与操作系统交互的主要方式之一。通过键盘输入命令,用户可以...
- Shell脚本可以接收命令行参数,`$0`表示脚本本身,`$1`到`$9`分别表示第一个到第九个参数。 - `shift`命令可以改变参数的位置,`shift 2`会将`$3`变成新的`$1`。 6. **控制结构** - 条件测试:`if`、`[[`和`...