shell的基础介绍

shell数组

Shell 脚本中的数组允许你存储一个元素列表,这些元素可以是数字、字符串或混合类型。Bash Shell 支持一维数组,不支持多维数组,但你可以通过模拟的方式来实现类似多维数组的功能。
在 Bash 中,数组可以通过多种方式声明和初始化。

  • 直接赋值,无需声明数组大小
array_name=(element1 element2 element3 ...)
  • 单独赋值,可以逐个元素地添加或修改
array_name[0]=element1  
array_name[1]=element2  
array_name[2]=element3

读取数组

读取数组元素值的一般格式是:

#访问特定元素
echo ${array_name[index]}
#访问所有元素
echo ${array_name[@]}  
# 或者  
echo ${array_name[*]}

关联数组

Bash 支持关联数组,可以使用任意的字符串、或者整数作为下标来访问数组元素。
关联数组使用 declare 命令来声明,语法格式如下:

#声明关联数组
declare -A assoc_array
#赋值
assoc_array[key1]="value1"  
assoc_array[key2]="value2"
#访问
echo ${assoc_array[key1]}
#遍历
for key in "${!assoc_array[@]}"; do  
    echo "$key -> ${assoc_array[$key]}"  
done

获取数组的长度

获取数组长度的方法与获取字符串长度的方法相同,例如:

echo ${#array_name[@]}  
# 或者  
echo ${#array_name[*]}

Shell运算符

Shell 和其他编程语言一样,支持多种运算符,包括:

  • 算数运算符
  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件测试运算符

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加(注意使用的是反引号 ` 而不是单引号 ')

算术运算符

下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:
在这里插入图片描述
注意:条件表达式要放在方括号之间,并且要有空格,例如: [ a = = a== a==b] 是错误的,必须写成 [ $a == $b ]。
在这里插入图片描述

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:
在这里插入图片描述
在这里插入图片描述

布尔运算符

下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:
在这里插入图片描述
在这里插入图片描述

逻辑运算符

以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:
在这里插入图片描述
在这里插入图片描述

字符串运算符

下表列出了常用的字符串运算符,假定变量 a 为 “abc”,变量 b 为 “efg”:
在这里插入图片描述

文件测试运算符

文件测试运算符用于检测 Unix 文件的各种属性。
属性检测描述如下:
在这里插入图片描述

Shell echo命令

echo 命令是 Shell 编程和命令行操作中非常基本且常用的一个命令,用于在终端或文件中输出文本、变量、环境变量或命令的执行结果。其基本语法如下:

echo [选项] [字符串]
  • -n:不输出行尾的换行符。
  • -e:启用转义字符的解释。
  • -E:明确禁止转义字符的解释(默认行为,但在某些情况下可能需要明确指定)。
    可以使用echo实现更复杂的输出格式控制。

1.显示普通字符串

在这里插入图片描述
这里的双引号完全可以省略。

2.显示转义字符

在这里插入图片描述

3.显示变量

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量。
在这里插入图片描述

4.显示换行

在这里插入图片描述

5.显示不换行

在这里插入图片描述

6.显示结果定向至文件

在这里插入图片描述

7.原样输出字符串,不进行转义或取变量(用单引号)

在这里插入图片描述

8.显示命令执行结果

在这里插入图片描述

Shell read命令

Shell中的read命令是一个非常强大的工具,用于从标准输入(通常是键盘)或其他文件描述符中读取数据,并将读取的数据赋值给变量。read命令在Shell脚本编程中尤其重要,因为它允许脚本与用户进行交互或处理来自文件的数据。以下是关于read命令的详细介绍:

read 命令的用法为

read [-options] [variable...]
  • -options:指定read命令的选项,用于控制读取行为。
  • variable…:一个或多个变量名,用于存储读取的数据。如果没有指定变量,则默认将读取的数据存储在环境变量REPLY中。

Shell read 命令支持的选项

在这里插入图片描述

Shell printf命令

printf 命令在 Shell 编程中是一个非常有用的工具,它用于格式化并打印数据。与 echo 命令相比,printf 提供了更多的格式化选项,允许你更精确地控制输出格式。printf 的语法和 C 语言中的 printf 函数非常相似。

printf 命令的语法

printf format [arguments...]
  • format:定义输出格式的字符串,可以包含普通文本、格式说明符等。
  • arguments…:一个或多个要打印的变量或值,它们将按照 format 指定的格式进行格式化。

格式说明符

格式说明符以 % 开头,后跟一个或多个字符,用于指定变量的输出格式。一些常见的格式说明符包括:

%s字符串。
%d、%i十进制整数。
%u无符号十进制整数。
%o八进制整数。
%x、%X十六进制整数(%x 使用小写字母,%X 使用大写字母)。
%f浮点数。
%e、%E科学计数法表示的浮点数(%e 使用小写字母,%E 使用大写字母)。
%c单个字符。
%%打印 % 字符本身。

printf 的转义序列

在这里插入图片描述

Shell test命令

Shell 中的 test 命令是一个用于检查文件类型并比较值的条件表达式求值工具。它用于在脚本中进行条件判断,并根据条件是否满足来执行不同的命令或脚本块。尽管 test 命令本身非常强大,但在现代 Shell 脚本中,[(通常与 ] 一起使用)是一个指向 test 命令的链接,二者在功能上几乎是等价的.
基本语法:

test expression  
# 或者  
[ expression ]

注意:[ 后面和 ] 前面必须有空格,因为 [ 实际上是 test 命令的一个链接,而 ] 是 test 命令的参数的一部分。

数值测试

在这里插入图片描述

字符串测试

在这里插入图片描述

文件测试

在这里插入图片描述

  • 37
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值