======= 数组 ======
a=(A B "C" D) # 定义多个数组
echo ${a[1]} # 打印数组中第一个角标的值
a[0]=A # 定义数组元素对应角标,数组第一个元素为A
a[1]=B
echo "数组元素为:${a[*]}" # 大括号为数组,中括号指定脚标为全部
# $a[*] 全部不换行;$a[@] 全部,要换行
# ${#a[*]} 获取元素个数
-------------- 案例:
a=(1 2 3 4 5) # 定义数组:有这么多元素
aj=1 #初始化角标:开始为1
a=${a[aj]} # 定义变量a 为取得的元素
echo $a
======== 运算符 ======
基本运算符:
+ - * / % = == != # 加减乘除,取余,赋值,相等,不等于
------------- 乘方:
echo $[2**3] # 打印一个乘方变量
echo $((2**3))
echo 1 | awk '{print 20**3}' # 乘方的另一种方法
let "y=2**3" ; echo $y
------------- 次幂
awk 'BEGIN{printf 8^(1/3)}' # 3次根号8的的值为2
awk 'BEGIN{printf 8^3}' # 8的3次方为512
1/3 1/3 1
log = log = log =2
8 2^3 2
底数的次方可以与指数相乘积,指数为1的情况下,log的值等于底数
1/3
log =(2^3)^1/3= 2^[3x(1/3)]
2^3
指数相乘
字符串运算符:
= != -z -n $ # 相等,不相等,长度为0,长度不为0,为空
# if [ -n "$a" ] 判断长度为0
echo ${#a} # 打印字符串变量a 的长度
关系运算符:
-eq 相等 -ne 不相等 -gt 大于 -lt 小于
-ge 大等于 -le 小等于
# if [ $a -gt $b ] 判断两个变量相等
布尔运算
# if [ $a -lt 100 -o $b -gt 100 ]
! 非运算:相反的结果 -o 或运算:其一成立 -a 与运算:都要求成立
逻辑运算符:
&& 逻辑and并且运算 || 逻辑的or 或者运算
文件测试运算符:
-b -c -d -f -g -k # 块设备,字符设备,目录,普通文件,SGID位
-p -r -w -x -s -e # 名管道,SUID位,文件可读,执行,为空,目录存在
# 使用样式:if [ -r $file ]
#!/bin/bash
a=10
b=20
val=`expr $a + $b` # 将 + 符号换成: 减- 乘 \* 除 / 取余 %
echo "a +b = $val" # 响应一个字符串, 和变量的值 $val
if [ $a == $b ] # if 如果,then 然后, echo 响应,fi 结束字句
then # [ $a == $b ] 用绝对等于符号判断两个字符串
echo "a 等于 b "
fi
expr substr "this is a test" 3 5 # 抓取字符串:字符串从1开始数数,空格不算位置,抓取3到5位置的字符串
--------- 逻辑运算符号符合条件就返回true ------------
#相等 -eq 不相等 -ne 大于 -gt 大等于 -ge 小于 -lt 小等于 -le
# 非运算 ! 或运算 -o 与运算 -a
[ $a != $b ] # 变量:a 不等于 b, 非运算
[ $a -lt 60 -a $b -gt 15] # 变量:a <60 且 b>15 与运算
[ $a -lt 100 -o $b -gt 100 ] # 变量:a<100 或 b> 100 或运算
&& # 相当于与运算,满足所有条件;也用于前面成功完成才执行后面
|| # 相当于或运算,满足一个条件就可以;前面无论成功失败就执行后面
= 字符串是否相等; != 判断是否不相等; -z 字符串长度为0;
-n 字符串长度不相等; $ 字符串为空
Powered by ddoss.cn 12.0
©2015 - 2025 ddoss
渝公网安备50011302222260号
渝ICP备2024035333号
【实验平台安全承诺书】
小绿叶技术社区,优化网络中,点击查看配置信息
主机监控系统: 安全防火墙已开启检查cc攻击-下载文件完成后等待10s 恢复访问,检查连接数低于峰值恢复访问
您的IP:216.73.216.110,2025-12-01 17:04:09,Processed in 0.01572 second(s).