1、!
逻辑 "非"操作符
反转命令或条件测试的结果, 并且这会影响退出状态码.
! echo "a" #!后面需要空格, $?则为1
bash历史命令机制
!<历史命令头几个字符> #则打印命令,执行命令,注意无空格,且此机制在脚本执行中被禁用
2、广泛的if
"if COMMAND"结构将会返回COMMAND的退出状态码
#比较文件
if cmp a b &> /dev/null # 禁止输出.
then echo "Files a and b are identical."
else echo "Files a and b differ."
fi
#非常有用的"if-grep"结构:
if grep -q Bash file
then echo "File contains at least one occurrence of Bash."
fi
#if测试条件可以嵌套
if echo "Next *if* is part of the comparison for the first *if*."
if [[ $comparison = "integer" ]] #上一行if的复杂测试条件
then (( a < b )) #数字比较
else [[ $a < $b ]] #字符串字符序比较
fi
then
echo '$a is less than $b'
fi
#if [ ] 测试
if [ xyz ] # 字符串、任意数字均为真,未声明变量为假,注意要有空格,否则报错
3、test [ ] [[ ]] (( ))
if test -z "$1" == if [ -z "$1" ]
使用[[ ... ]]条件判断结构, 而不是[ ... ], 能够防止脚本中的许多逻辑错误. 比如, &&, ||, <, 和> 操作符能够正常存在于[[ ]]条件判断结构中, 但是如果出现在[ ]结构中的话, 会报错
[]条件判断也不一定非得要if不可, 也可以使用列表结构. e.g. [ "$var1" -ne "$var2" ] && echo "$var1 is not equal to $var2"
(( )): 扩展并计算一个算术(整数)表达式的值. 如果表达式的结果为0, 那么返回的退出状态码为1, 或者是"false". 而一个非零值的表达式所返回的退出状态码将为0, 或者是"true".
4、文件测试符
-e : 文件存在
-f : 存在且不为目录和设备文件
-d : 目录存在
-s : 文件大小不为零
-r -w -x : 文件是否具有可读、写、执行权限
f1 -nt f2 : 文件f1比文件f2新
f1 -ot f2 : 文件f1比文件f2旧
5、字符串测试符
[ $a == z* ] # 如果$a以"z"开头(模式匹配)那么结果将为真
[ "$a" == "z*" ] # 如果$a与z*相等(就是字面意思完全一样), 那么结果为真.
<小于,依照ASCII字符排列顺序 > 与此相同
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ] #注意"<"字符在[ ] 结构里需要转义
-z : 字符串为"null",即是指字符串长度为零。
-n : 字符串不为"null",即长度不为零.
6、算术操作符
** 求幂
算术操作符经常会出现在 expr或let表达式中.
let “a=5**3”
expr 5%3
7、数字表示
8进制: 以 0 开头
16进制: 以'0x'或者'0X'开头的数字
其他进制: BASE#NUMBER, BASE的范围在2到64之间,NUMBER受限于ASCII字符范围(2 - 64):10个数字 + 26个小写字母 + 26个大写字符 + @ + _
e.g. let "b64 = 64#@_" # 4031
分享到:
相关推荐
本文档《Shell学习笔记》详细介绍了Shell脚本编写的基础知识和一些高级技巧,包含了多个主题,例如终端操作、环境变量使用、数学运算、文件描述符、数组和关联数组、别名使用、终端信息获取、日期和时间处理、脚本...
shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识
shell学习笔记的主要内容是 shell 变量、环境变量、条件判断语句、循环语句等。下面对这些知识点进行详细的解释。 一、shell 变量 shell 变量可以分为系统变量和环境变量。系统变量主要用于对参数判断和命令...
Shell 学习笔记总结 本资源是 Shell 学习笔记的总结,涵盖了 Shell 的基本概念、类型、变量、进程、权限、管道、POSIX、grep、sed、awk 等命令和编程语言。 一、 Shell 的类型和特点 Shell 是一种命令行界面,...
shell脚本成分 开头和注释: shell脚本的开头,用来解释shell程序,包括:#!/bin/bash、#!/bin/csh、#!/bin/tcsh、#!/bin/pdksh,一般用#!/bin/bash。。 shell脚本中的注释,以#开头的...
### Bash Shell 学习笔记知识点概览 #### 1. 引言 - **Shell**:作为用户与操作系统之间的桥梁,Shell提供了一种与系统进行交互的方式,支持用户执行命令和编写脚本来自动化任务。 - **Bash**:是Bourne-Again ...
自己整理的Shell脚本学习笔记,脚本实例可直接运行:1. 变量和字符串;2. 传递参数;3. 基本运算符;4. echo&printf;&test;;5. 流程控制;6. 函数;7. 输入输出重定向&文件嵌入
本文整理了一份Linux shell学习笔记及基本命令合集,包含了LINUX常用操作命令和命令行编辑快捷键、shell基本命令,Linux相关使用配置教程等,需要的朋友可下载试试! shell是一个用C语言编写的程序,它是用户使用...
### Shell Script 编程学习笔记 #### 一、Shell 脚本初窥 ##### 示例: ```bash #!/bin/sh # 第1行:指定脚本解释器(声明使用的shell名称),这里是用/bin/sh做解释器的。“#!”是一个约定的标记 cd ~ # 第2行:...
总的来说,这份“Linux Shell个人学习笔记”涵盖了从基础命令到高级脚本编程的广泛内容,适合想要提升Linux操作技能或准备系统管理员考试的读者。通过深入学习和实践,你可以成为一个熟练的Linux用户,甚至成为一名...
本文档总结了 Linux shell 脚本编程的学习笔记,涵盖了 shell 脚本的定义、编写、权限、存放位置、函数、变量、IF 控制语句、命令退出状态等知识点。 一、shell脚本的定义 shell 脚本是一个包含一系列命令的文件,...
### Shell学习笔记知识点详解 #### 一、变量定义与引用 **定义变量注意事项:** - **定义格式**:在Shell脚本中定义变量时,变量名与等号(`=`)之间不能有空格。 - 正确示例:`var1=value` - 错误示例:`var1 ...
根据给定的"Bash shell学习笔记"文件信息,我们可以从中提炼出多个重要的IT知识点,具体如下: ### 1. 引言 - **Shell的角色**:Shell作为一个命令解释器和编程语言,在用户与UNIX/Linux系统内核之间提供了一个桥梁...
Shell学习笔记主要关注的是Linux或Unix系统中的命令行界面(CLI)交互,特别是Shell脚本编程。Shell是一种命令解释器,允许用户通过命令行输入来执行操作系统任务,同时,它也是一种编程语言,可以编写自动化脚本来...
Linux 命令和管理 - shell 之脚本编程条件判断及算术运算 本资源摘要信息涵盖了 Linux 命令和管理中的 shell 编程基础知识,包括变量声明、算术运算、条件判断和脚本编程等方面。 变量声明 在 Bash 中,变量声明...
Linux shell是学习Linux必须掌握的脚本之一,该文档为本人学习Shell脚本时总结的一些基础知识,包括Shell的语法、简单示例和总结,欢迎下载学习。
### Shell学习笔记 #### Shell的发展与分类 Shell作为Unix及类Unix系统(包括Linux)的主要用户界面之一,其历史可以追溯到20世纪70年代。最初,Shell仅仅作为一个简单的命令解释器,随着时间的推移,它发展成为了...