Shell语言基础语法(2)

目录

一、数据类型

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      # 输出: 1

echo $((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 ] 
then
	echo "文件可读" 
else
	echo "文件不可读" 
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、布尔运算符

 总结

好好学习,天天向上!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值