shell 脚本学习笔记(1):shell变量&字符串&数组

目录

      • shell变量
        • 变量命名规则
        • 使用变量
        • 只读变量
        • 删除变量
      • shell字符串
        • 单引号
        • 双引号
        • 字符串拼接
        • 获取字符串长度
      • 数组
        • 定义数组
        • 读取数组
        • 数组长度
      • shell空格问题
        • 不加空格
        • 加空格

shell变量

变量命名规则
  1. 命名只能是英文字母、数字和下划线组成,并且不能是数字开头。
  2. 中间不能有空格,可以有下划线。
  3. 不能使用标点符号
  4. 不能是bash里的关键字(可以使用help命令查看保留关键字)推荐查看关键字博客
使用变量
  1. ${变量名称}或$变量名称
  2. 推荐使用${变量名称},有时候需要{}来区分变量名称边界
  3. 变量在赋值的时候=两边一定不能有空格
只读变量

将变量设置为只读:readonly 变量1.例子如下

# 为变量添加readonly
#! /bin/sh
var="hello world"
readonly var
var="hello"
[root@localhost test2]# ./t1.sh
./t1.sh: line 5: var: readonly variable
删除变量
  1. 语法:unset 变量1
  2. unset命令不能删除只读变量

shell字符串

单引号
  1. 单引号字符串里的任何字符都会原样输出,单引号中的变量是无效的。
  2. 单引号中不能出现单独的一个单引号,转义之后也不行,单引号可以成对出现,作为字符串拼接。
双引号
  1. 可以出现变量
  2. 可以出现转义字符
字符串拼接

直接将需要拼接的字符串写在一起不需要+号:‘hello’‘world’

获取字符串长度

${#string}

数组

定义数组
#! /bin/sh
var=234
arry=("A" B "CDE" $var)
echo ${arry[*]}
读取数组
  1. 按照下标读取:${数组名称[下标]}
  2. 从后往前读取:${数组名称[-n]},其中n代表数组倒数第几位。
数组长度
  1. lenth=${#数组名称[*]}

shell空格问题

不加空格
  1. 赋值语句,等号两边不能加空格
加空格
  1. 运算符前后需要有空格
  2. 放在[]中的表达式和[]之间需要有空格。正确:[ a + b ],错误:[a+b]。
  3. 使用let做算术运算中算术符号(+、-、*、/)不需要空格

你可能感兴趣的:(Shell脚本,学习)