7.1 退出状态
退出状态为0表示命令运行成功,不为0表示命令运行失败。最后一次命令退出状态值被保存在"$?"中。
7.2 测试与判断
测试命令用于测试表达式真假,如果测试条件为真,返回0;否则返回非0。这一点跟C语言不一样。
[ expression ] ,请注意[]中[后面要有一个空格, ]前面要有一个空格。
在linux中,整数比较跟字符串比较是完全不一样的格式。
整数比较运算符:
整数比较运算符 | 描述 |
num1 -eq num2 | 如果num1等于num2,结果为0 |
num1 -ge num2 | 如果num1大于等于num2,结果为0 |
num1 -gt num2 | 如果num1大于num2,结果为0 |
num1 -le num2 | 如果num1小于等于num2,结果为0 |
num1 -lt num2 | 如果num1小于num2,结果为0 |
num1 -ne num2 | 如果num1不等于num2,结果为0 |
bash只能对整数使用比较运算符,如果是浮点数,需要使用特定的函数。
字符串运算符:
字符串运算符 | |
-n string | 测试字符串string是否不为空 |
-z string | 测试字符串是否为空 |
string1 = string2 | 测试字符串是否相等 |
string1 != string2 | 测试字符串是否不相等 |
字符串比较时建议字符串变量使用双引号,即使变量为空,同样也要使用双引号。
# [ -n "$str" ]
# [ "$str1" = "$str2" ]
在linux shell中,字符串赋值和整数赋值没有区别,所以在整数比较时注意不要使用字符串比较运算符。
7.2.4 文件操作符:
格式为: [ file_operator file ]
file_operator为文件操作符,file为文件名、目录名等。
几个典型的文件操作符:
文件操作符 | 描述 |
-d file | 测试file是否为目录 |
-e file | 测试file是否存在 |
-f file | 测试file是否为普通文件 |
-r file | 测试file是否可读 |
-w file | 测试file是否可写 |
-x file | 测试file是否可执行 |
-s file | 测试file的大小是否大于0 |
-L file | 测试file是否为符号链接 |
7.2.5 逻辑运算符:
! expression 非
exp1 -a exp2 与
exp1 -o exp2 或
# [ "$var" -ge 10 -a "$var" -le 100 ]
7.3.1 判断:
if expression; then
command;.....
elif expression; then
command;....
else
command;...
fi
case "$mouth" in
1)
echo "one";;
2)
echo "two";;
*)
echo "other";;
esac
7.3.2 exit 命令
# exit status
错误返回一个非0值,或保存在$?这个变量中去。
7.4.1 算术运算符
算术运算符包括:+、-、*、/、%、**(幂运算符)
整数做除法运算时候或舍弃小数部分,忽略四舍五入,最终结果为整数部分。
直接赋值的时候,shell默认都是字符串赋值,要想让它成为整数赋值,可使用let命令:
# let z=8/5*5
对于浮点数,需要使用专门的函数,这一点跟C语言是不一样的。
复合赋值: += -= *= /= %=
7.4.2 位运算符
<< 左移 >>右移 &按位与 |按位或 ~按位取反 ^按位异或
7.4.3 数字常量
默认shell是以10进制表示数字,如果想以其他进制,可使用0(8进制)或0x(16进制)作为前缀
或者可以使用num#作为前缀
比如:# let "num=2#10000111111001010"
for循环:
for i in {1..100..2}
do
let "sum+=i"
done
echo "sum=$sum"
上面的for循环也可以用seq来简写:
for i in $(seq 1 2 100)
do
let "sum+=i"
done
echo "sum=$sum"
-------
for file in $(ls)
do
echo "file:$file"
done
-------
for ((var=1; var<=5; var++))
do
echo "var=$var"
done
---------
#!/bin/bash signal=0 num=4 while (("$signal" != 2)) do if [ "$num" -gt 3 ]; then echo "goodman..." fi let "signal++" done
-------九九乘法表-----------
#!/bin/bash for ((i=1;i<=9;i++)) do for ((j=1;j<=i;j++)) do # let "temp = i * j" echo -n -e "$j*$i=$((i*j))\t" done echo "" done
select的用法:提供一个选择列表给用户区选择
#!/bin/bash echo "What is your favorite color?" select color in "red" "blue" "green" do break done echo "you have selected $color"
本人博客已搬家,新地址为:http://yidao620c.github.io/
相关推荐
shell数组循环 测试shell数组,循环的例子: arr=(a b c) echo 所有的内容如下:${arr[@]} echo 数组的长度:${#arr[*]} ... 您可能感兴趣的文章:Shell获取字符串长度的多种方法总结用Shell判断字符串包含
在Linux Shell编程中,循环是不可或缺的一部分,它允许我们重复执行一段代码,直到特定条件不再满足。本篇文章将深入探讨三种常见的循环结构:for、while和until。 **1. for循环** for循环常用于已知循环次数的...
在IT行业中,Linux Shell编程是系统管理员和开发者必备的技能之一。它允许用户通过命令行接口与操作系统进行交互,执行自动化任务,大大提高工作效率。本文将深入探讨Linux Shell编写的基础知识,包括基本概念、常用...
8. 循环与条件判断:文档中出现循环控制结构(while、do...done)和条件判断结构(if、elif、else),这是Shell编程中常用的控制逻辑。 9. 脚本使用交互式输入:文档显示脚本需要用户的交互式输入,例如读取用户名...
2. **条件语句与循环**:学习if、else、fi、case等条件判断语句,以及for、while、until等循环结构。 3. **函数定义**:理解如何在Shell中定义和调用函数,提高代码复用性。 4. **流程控制**:掌握break、continue...
### Shell脚本—判断循环:深入理解与应用 #### shell基础简单循环判断语句解析 在Shell编程中,循环和判断语句是控制流程的核心工具,它们允许脚本执行重复的任务并基于条件作出决策。本章节将从Shell脚本的基础...
- **Bash Shell**:Bash是GNU Project的一部分,是Unix/Linux系统中最常用的Shell之一。它是大多数Linux发行版的默认Shell。 - **Zsh Shell**:Zsh是另一个功能强大的Shell,提供了许多高级特性,如自动补全等。 - *...
7. **Shell流程控制**:详细介绍了if判断、for、while、until循环以及case选择语句,还提供了使用循环结构打印九九乘法表的案例。 8. **Shell函数**:学习如何在Shell中定义函数,处理函数参数,并给出实用的函数...
Linux Shell脚本是Linux系统中用于自动化任务的强大工具,它基于Bash或其他Shell解释器,允许用户编写一系列命令,以实现批处理、任务调度或任何需要自动化的工作流程。本PDF文档"shell-script-entry.pdf"提供了18页...
**Shell** 在 Unix/Linux 系统中扮演着极其重要的角色,既是用户与操作系统交互的主要接口,也是一种强大的编程语言。通过 Shell 编程,用户不仅可以自动化执行一系列命令,还可以编写复杂的脚本来完成特定任务。 #...
### Linux Shell脚本全面学习知识点概述 #### 一、Linux脚本编写基础 **1.1 语法基本介绍** **1.1.1 开头** - **解释**: 每个Shell脚本都需要以 `#!/bin/sh` 开始,这行被称为shebang,用于指示系统如何执行此...
Linux Shell编程是Linux系统中一个极其重要的组成部分,它充当了用户与操作系统内核之间的接口,允许用户通过命令行与系统进行交互。Shell不仅提供了一系列内置命令,还支持编写脚本,使得复杂的自动化任务变得可能...
Linux Shell 是Linux操作系统中用于与系统交互的一种命令行接口,它是用户与Linux内核之间的桥梁。Shell不仅可以执行单一的命令,还可以通过脚本文件执行一系列命令,极大地提高了工作效率。这篇参考文档将深入探讨...
这份“linuxshell.rar帮助文档”旨在提供关于Linux Shell的基础知识和实用技巧,帮助用户提高在终端中的操作效率。 一、Shell简介 Linux Shell是Linux系统中的一个核心组件,常见的有Bash(Bourne Again SHell)、...
根据给定的Linux shell脚本,我们可以深入探讨与身份证号码验证相关的知识点,特别是针对中国身份证号码的15位和18位格式的处理方法。以下是对脚本中关键部分的详细解析: ### Linux Shell编程验证身份证号码 ####...
Linux Shell脚本攻略是一本针对Linux操作系统下Shell脚本编写的指导书籍。Shell脚本是利用Shell编程语言来控制和自动化命令序列的脚本,常用于系统管理、服务器管理、自动化任务处理等领域。本书的第三版包含了全面...
之后是脚本内容,可以包括变量赋值、条件判断、循环控制、函数定义以及各种Linux命令。 Shell脚本能够处理多种文本和数据,包括字符串和数字的比较、文件的读写、文本的搜索和替换等。这些操作在进行数据处理和日志...
Linux Shell编程是Linux系统管理与自动化任务的核心技术之一。Shell脚本可以理解为Linux环境下的批处理程序,它允许用户通过编写脚本来执行一系列命令,从而实现自动化操作,提高工作效率。这本书《Linux Shell编程...