四则运算
算术运算:默认情况下,shell就只能支持简单的整数运算
运算内容:加(+)、减(-)、乘(*)、除(/)、求余数(%)
i++ 和++i
i++:先打印i,后进行加1操作
条件判断
格式
格式2 是格式1的简写模式'
判断条件的参数
①判断文件类型
示例
判断条件执行之后,会返回状态码用来判断命令是否成功执行。
$? 是一个特殊变量,它保存了上一个命令的退出状态码。返回0代表成功,返回非0数就是失败
②判断文件权限
示例
③判断文件新旧
说明:这里的新旧指的是文件的修改时间
nt 即
newer than
ot 即
older than
ef 即
equal file
④判断整数
⑤判断字符串
-z:zero
-n:nonzero
⑥多重条件判断
a 即 and
o 即 or
第一条命令 [ 2 -eq 2 ]为真, 所以执行了&&后面的echo 'true',输出true
第二天命令 [ 2 -eq 1 ] 是假, 所以没有执行&&后面的 echo 'true' ,没有任何输出
类C风格的数值比较
使用类似于 C 语言中的条件表达式来进行数值比较。
注意:在(( ))中,=表示赋值;==表示判断
; 只用于分割命令或表达式
流程控制语句
if 语句
示例
注:
写判断时,[ ]和[[ ]] 里面的判断条件需要和方括号有空格
read -p "请输入你的年龄" age:这行命令提示用户输入他们的年龄,并将输入的值存储在变量 age 中。-p 参数用于显示提示信息。
-p 即 "prompt" , 提示。这个参数用于指定一个字符串,该字符串将在读取输入之前显示给用户,作为提示信息。
执行:先赋予执行权限,再执行
注: 不是循环,命令只能执行一次,想要再次输入年龄测试,得再次执行shell文件
case语句
注: case和esac; if 和 fi ;结尾和开头倒过来写
for 循环
①列表循环
示例(控制台)
# for i in {起始值..结束值..步长};do echo $i;done
示例
# for i in $(seq 10);do echo $i;done
seq 是一个生成数字序列的命令行工具"sequence"。它可以生成从指定的起始值到指定的结束值的数字序列,默认起始值和步长为 1
②不带列表循环
示例
(建shell文件)
给予执行权限
执行时传参(参数列表)
③类C风格的for循环
while 循环
特点:条件为真就进入循环;条件为假就退出循环
util 循环
特点:条件为假就进入循环;条件为真就退出循环
语法结构:
函数
shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数,给这段代码起个
名字称为函数名,后续可以直接调用该段代码的功能。
-
source fuction.sh:
这个命令用于在当前的 shell 会话中加载并执行 fuction.sh 脚本文件。这通常用于导入脚本中定义的函数或变量,使它们在当前会话中可用。 -
get_sum 1 2 3:
这个命令调用了 get_sum 函数,并传递了三个参数(1、2 和 3)。根据脚本的定义,这个函数应该计算这些参数的和。 -
echo $?:
这个命令用于显示上一个命令的退出状态。上一条命令计算了参数和的结果是6