12、Linux-Shell01:变量、字符串和数组、注释

目录

一、基础知识

二、变量

1、定义变量

2、使用变量

3、只读变量

4、删除变量

三、字符串和数组

1、字符串

①单引号和双引号的区别

②#

③切片

2、数组

四、注释

1、单行注释

2、多行注释


一、基础知识

Linux的Shell有很多种,这里讨论的是Bash。

假设有Shell脚本名为helloWorld.sh,执行这个脚本(前提是脚本具有可执行权限)可以通过命令

./helloWorld.sh,在helloWorld.sh所在目录下执行此命令即可运行脚本。

在这种情况下:需要在脚本开头写上“#! /bin/bash”,这样系统才知道用什么解释器执行

/bin/bash helloWorld.sh,这种情况下不需要在脚本开头写上“#! /bin/bash

这是一个shell脚本的例子

其中echo命令用于打印一个字符串。


二、变量

1、定义变量

shell中的变量定义时和大多数编程语言的变量规则一致:如由字母数字下划线组成且不以数字开头,不能与关键字重合等。

不同的是,在赋值符号‘=’左右两侧不应该使用空格,否则可能导致错误。

2、使用变量

在变量前面加上$即可使用变量,可以在变量外面加上{},以帮助解释器确定变量边界

在这个例子中,如果使用第二个变量skill时没有加{},解释器会把skillScript当成变量名,这会导致错误。

3、只读变量

使用readonly可以设置变量为只读类型,之后无法修改其内容

例如readonly name

4、删除变量

使用unset可以删除变量,之后不能再次使用。

例如unset name,注意无法删除只读变量


三、字符串和数组

1、字符串

①单引号和双引号的区别

通过单引号或双引号包含的内容被视为字符串,区别在于:单引号不识别变量,双引号识别变量。

②#

通过#可以获取字符串长度,使用方法为echo ${#str}

③切片

echo ${str:6:5},第一个数字6代表开始位置索引(第一个是0),第二个数字5代表切片长度

2、数组

bash仅支持一维数组,通过下标访问数组元素,下标从0开始。使用@获取全部元素。

# 定义数组
[root@VirTrxcx test]# clazz=("ds" "co" "os" "cn")

[root@VirTrxcx test]# echo ${clazz[2]}
os
[root@VirTrxcx test]# echo ${clazz[@]}
ds co os cn

# 获取数组长度
[root@VirTrxcx test]# arrayLength=${#clazz[@]}
[root@VirTrxcx test]# echo $arrayLength 
4

四、注释

1、单行注释

#

2、多行注释

echo 注释内容前

:<<EOF

这里是注释内容

EOF

echo 注释内容后

EOF可以换成其他内容,前后一致即可。

相关推荐

  1. 15Linux-Shell04:分支循环

    2024-03-14 14:46:02       21 阅读
  2. linux Shell 命令行-02-var 变量

    2024-03-14 14:46:02       21 阅读
  3. shell变量引号!

    2024-03-14 14:46:02       14 阅读
  4. linuxshell脚本的变量设置、运行置换

    2024-03-14 14:46:02       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 14:46:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 14:46:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 14:46:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 14:46:02       20 阅读

热门阅读

  1. Vue中的知识点

    2024-03-14 14:46:02       23 阅读
  2. CXL (Compute Express Link) Technology——论文阅读

    2024-03-14 14:46:02       36 阅读
  3. c++面经

    2024-03-14 14:46:02       19 阅读
  4. 人类的谋算与量子计算

    2024-03-14 14:46:02       15 阅读
  5. 用C语言链表实现图书管理

    2024-03-14 14:46:02       18 阅读
  6. 算法刷题day30:递归

    2024-03-14 14:46:02       23 阅读
  7. Dijkstra&floyed

    2024-03-14 14:46:02       20 阅读
  8. 3. Linux标准I/O库

    2024-03-14 14:46:02       18 阅读
  9. Linux 学习笔记(15)

    2024-03-14 14:46:02       20 阅读