首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Shell编程-数据类型

Shell编程-数据类型

作者头像
运维小路
发布于 2024-11-01 19:46:31
发布于 2024-11-01 19:46:31
3780
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们前面学习了那么多命令,以及涉及到部分逻辑判断的问题。从简单来说,他就是Shell编程,只有由于命令比较单一,只能实现比较简单的功能。如果我们把多个操作都放到一起去,并添加更复杂的逻辑在里面,他就是Shell编程。所以我们主要从以下几个方面讲解Shell编程:

Shell编程-什么是shell

Shell编程-变量

Shell编程-数据类型(本章节)

Shell编程-逻辑判断

Shell编程-if判断

Shell编程-if和else

Shell编程-while循环

Shell编程-for循环

Shell编程-case

Shell编程-break

Shell编程-continue

Shell编程--函数

Shell编程-案例(一)

Shell编程-案例(二)

Shell编程-小结

为什么考虑数据类型呢?因为我们设置的变量,有的变量只是用于直接使用,有的变量是需要进行数学计算的,有的变量是会依赖真假,比如$?如果范围为0这为真,返回非0则为假。

在Shell脚本编程中,数据类型的概念不如在许多高级编程语言中那么严格。本章节的很多内容和高级编程语言也是通用的。Shell脚本主要使用以下几种数据类型:

字符串

字符串是Shell脚本中最常见的数据类型。在Shell中,任何用引号(单引号或双引号)包围的字符序列都被视为字符串。即使是数字,如果没有进行数学运算,通常也被视为字符串。

  • 不带任何符号:
代码语言:javascript
复制
var=value
#value 中不包含特殊字符和空白字符等
  • 单引号字符串:
代码语言:javascript
复制
var='value'
#变量中的内容被严格地视为字面字符串,不进行任何变量扩展和特殊字符解释。
name=John 
var='Hello, $name!'
echo $var 
#会输出
Hello, $name!
  • 双引号字符串:
代码语言:javascript
复制
var="value"
#变量中的内容被被解析成变量。
name=John 
var="Hello, $name"
echo $var 
#会输出
Hello, John

当然,我们在编写一般脚本的时候,实际上的原则就是如果没特殊符号,怎么用多可以,如果有特殊符号就必须要使用引号引来。

数字

在Shell脚本中,数字通常用于算术运算。Shell脚本中的数字可以分为整数和浮点数(尽管浮点数支持有限)。

  • 整数:没有小数点的数字。
代码语言:javascript
复制
result=$((5 + 3))
echo $result
#会输出
8

数组

数组是一种可以存储多个值的变量。在Bash中,数组可以是一维的,也可以是关联数组(类似于哈希或字典)。

  • 一维数组:
代码语言:javascript
复制
fruits=("apple" "banana" "cherry")
echo  ${fruits[0]}
#会输出
apple
#在一般的编程语言里面,都是从0开始

布尔值

尽管Bash没有专门的布尔数据类型,但它使用整数值来表示布尔逻辑。通常,0代表true,非零值代表false。

代码语言:javascript
复制
if [ 0 ]; then
    echo "This is true."
fi
if [ 1 ]; then
    echo "This is false."
else
    echo "This is indeed false."
fi

空值

在Shell脚本中,null或空值通常表示为未设置的变量或设置为空字符串的变量。

未设置的变量:

代码语言:javascript
复制
unset var

空字符串:

代码语言:javascript
复制
var=""

总结

1.其实这里介绍了这么多数据类型,大部分都是用不到的,因为我们绝大部分shell里面用到的都是字符串。

2.这里多讲了一点是因为其他更高级的编程语言,对数据类型都是有要求的,相当于提前普及一点其他知识把。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 字符串
  • 布尔值
  • 空值
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档