目录
一、数据类型
1、数字类型
2、字符串类型
3、数组类型
(1)、普通数组
普通数组的定义
普通数组的访问
(2)、关联数组
关联数组的定义
关联数组的访问
二、变量值相关操作
1、获取变量长度
2、切片
3、截断
4、let操作
三、运算符
1、算数运算符
2、文件测试运算符
3、字符串测试运算符
4、比较运算符
5、逻辑运算符
6、布尔运算符
总结
一、数据类型
1、数字类型
- int 整形
age=18
- float 浮点型
salary=30000.0
2、字符串类型
在shell中,加了引号的字符就是字符串类型
" " 弱引用,引号的特殊字符有意义
' ' 强引用,引号内所有特殊字符都取消意义
name='Alice'
gender="女"
3、数组类型
(1)、普通数组
普通数组:只能使用整数作为数组索引
普通数组的定义
- 方式一:array=(元素1 元素2 元素3)
array=(1 5 8 '你好')
- 方式二:array=([key1]=value1 [key2]=value2 [key3]=value3)
array=([0]=11 [2]=22 [1]="hello")
- 方式三:依次赋值
array_new[0]=111
array_new[1]=222
array_new[2]="world"
- 方式四:利用执行命令的结果设置数组元素:array=($(命令)) 或者 array=(`命令`)
该方式会将命令的结果以空格为分隔符切成多个元素然后赋值给数组
array1=(`ls /test`)
普通数组的访问
查看声明过的数组:declare -a
- 正向所用:echo ${array9[索引]},索引值为正数,以0开头
- 反向索引:echo ${array9[索引]},索引值为负数,从右往左以-1开头
(2)、关联数组
关联数组的定义
关联数组【字典】:可以使用字符串作为数组索引,需要用declare -A声明
# 创建一个叫info的关联数组
declare -A info
info["name"]="Alice"
info["age"]=18
info["gender"]="女"# 查看info数组
declare -A |grep info
关联数组的访问
echo ${info["name"]}
二、变量值相关操作
1、获取变量长度
在变量名前加#来获取变量内容的长度
msg="hello world!"
# 打印msg变量的长度
echo ${#msg}
2、切片
使用
${variable:offset:length}
语法可以对字符串进行切片。
-
${variable:offset}
:从offset
开始,提取到字符串末尾。 -
${variable:offset:length}
:从offset
开始,提取length
个字符。
-
${variable: -offset}
:从字符串末尾开始,提取offset
个字符。 -
${variable: -offset:length}
:从字符串末尾开始,提取offset
个字符,再提取length
个字符。
3、截断
- 截掉左边的字符
url="www.csdn.com.cn"# 简单使用echo ${url#www.} # 输出:csdn.com.cn# 非贪婪模式 #*
echo ${url#*w}# 输出:ww.csdn.com.cn# 贪婪模式 ##*
echo ${url##*w}
# 输出:.csdn.com.cn
- 截掉右边的字符
将#换成%就是从右边开始截断
4、let操作
在 Linux 系统中,
let
是一个内置的 Bash 命令,用于执行算术运算。它允许你直接对变量进行数学运算,并将结果赋值给变量。let
命令非常适合在脚本中进行简单的整数运算。注意:
let
只能处理整数运算,不支持浮点数运算。
以下是 let
支持的常见算术运算:
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法 | let a=5+3 |
- | 减法 | let b=10-4 |
* | 乘法 | let c=6*7 |
/ | 除法 | let d=20/5 |
% | 取模(余数) | let e=10%3 |
** | 幂运算 | let f=2**3 |
let x=i++ # 先把i赋值给x,然后再++
let y=++j # 先++j,然后再把j的结果赋值给y
三、运算符
1、算数运算符
算术运算符需要配合以下操作符使用
浮点运算:bc 需要下载(yum install bc -y )
整数运算:expr、$(())、$[]、let(只支持赋值操作 )
- 浮点运算 bc计算工具(yum install bc -y)
echo "表达式" | bc
echo "2.1+3.2" | bc # 输出:5.3
echo "5 + 3" | bc # 输出: 8
echo "10 - 4" | bc # 输出: 6
echo "6 * 7" | bc # 输出: 42
echo "20 / 5" | bc # 输出: 4
echo "10 % 3" | bc # 输出: 1
echo "2 ^ 3" | bc # 输出: 8
- 整数运算
$[]
是$(())
的简写形式,两者功能相同。let只支持赋值操作
expr 5 + 3 # 输出: 8
expr 10 - 4 # 输出: 6
# 乘法符号前要加转义字符
expr 6 \* 7 # 输出: 42
expr 20 / 5 # 输出: 4
expr 10 % 3 # 输出: 1echo $((5 + 3)) # 输出: 8
echo $((10 - 4)) # 输出: 6
echo $((6 * 7)) # 输出: 42
echo $((20 / 5)) # 输出: 4
echo $((10 % 3)) # 输出: 1
echo $((2 ** 3)) # 输出: 8
2、文件测试运算符
[ -r $file ]:判断文件是否可读
[ -w $file ] :判断文件是否可写
[ -x $file ]:判断文件是否可执行
[ -f $file ]:判断文件是否是普通文件
[ -d $file ]:判断文件是否是目录(文件夹)
[ -s $file ]:判断文件是否是空
file="/var/node/test.sh"
if [ -r $file ]
thenecho "文件可读"
elseecho "文件不可读"
fi
3、字符串测试运算符
==:判断两个字符串是否相等
!=:判断两个字符串是否不相等
-z:判断字符串长度是否为0
-n:判断字符串长度是否不为0
[ "aaa" == "bbb" ];echo $?
#输出:1
# echo $? 表示输出上一个可执行程序的结果
4、比较运算符
[ 10 -eq 10 ];echo $?
# 输出:0
5、逻辑运算符
需要结合(())进行使用
(1). &&
操作符
&&
是“逻辑与”操作符,用于在两个命令之间建立依赖关系。
语法
命令1 && 命令2
行为
-
如果
命令1
执行成功(返回值为 0),则执行命令2
。 -
如果
命令1
执行失败(返回值非 0),则跳过命令2
的执行。
(2). ||
操作符
||
是“逻辑或”操作符,用于在两个命令之间建立选择关系。
语法
命令1 || 命令2
行为
-
如果
命令1
执行成功(返回值为 0),则跳过命令2
的执行。 -
如果
命令1
执行失败(返回值非 0),则执行命令2
。
6、布尔运算符
总结
好好学习,天天向上!!!