Linux Shell 变量

2021-01-15  本文已影响0人  尚水杨

命名规则

  1. 只能使用英文字母、数字和下划线,首字符不能以数字开头。
  2. 区分大小写。

变量定义

变量定义采用如下方法key=value ,"="号两边不能有空格

获取变量值

可以如下两种

var1="hello"
echo $var1
echo ${var1}

设置变量只读及删除变量

#设置只读
readonly var1
# 删除
unset var1

变量类型

  1. 环境变量
    一般大写,全局共享,有系统自带的环境变量,也有通过export声明的临时全局变量
    常用的环境变量
    PATH 决定了shell将到哪些目录中寻找命令或程序
    HOME 当前用户主目录
    HISTSIZE 历史记录数
    LOGNAME 当前用户的登录名
    HOSTNAME 指主机的名称
    SHELL 当前用户Shell类型
    LANGUGE  语言相关的环境变量,多语言可以修改此环境变量
    MAIL 当前用户的邮件存放目录
    PS1 基本提示符,对于root用户是#,对于普通用户是$

  2. Shell内置变量

变量 含义
$0 脚本名
1 -9 位置1-9参数
${10} 位置10参数
$# 位置参数个数
"$*" 所有位置参数(作为单个字符串)
"$@" 所有位置参数(每个作为单独字符串)
${#*} 传递到脚本中的命令行参数的个数
$? 返回值
$$ 脚本进程的PID
$- 传递到脚本中的标识
$_ 之前命令的最后一个参数
$! 运行在后台的最后一个作业的进程ID(PID)
  1. 局部变量
    用户定义的变量,只能在当前shell中生效

字符串

变量值

字符串可以使用单引号、又引号及不使用引号

var1='value1'
var2="value1 \${var1}=${var1}"
var3=value3
注:
1. 单引号是任何字符都是原样输出。
2. 单引号字符串中不可以出现单个单引号,可以成对出现。
3. 双引号字符串中可以使用变量。
4. 双引号字符串中可以使用转义字符。

拼接字符串

var1="value1"
#使用双引号拼接
var2="value2 "$var1" is ok"
#使用单引号拼接
var3='value3 '$var1' is ok'

查找子字符串

使用index指令进行查找,位置从1开始计算

#查找第一个i或s字符的位置
s1="this is shell"
`expr index "$s1" is`
#或者
$(expr index "$s1" is)

提取子字符串

s1="this is shell"
#从第6个字符开始,取2个字符,下标从0开始
${s1:5:2}  #返回is

获取字符串长度

s1="this is shell"
echo ${#s1} #返回13

数组

数组定义

#方式1
arr_name=(1 2 3)
#方式2
arr_name=(
1 
2 
3
)
#方式3
arr_name[0]=1
arr_name[1]=2
arr_name[2]=3

读取数组

#格式
#获取单个元素
${arr_name[n]}
#获取所有元素
${arr_name[@]}
#获取数组元素的个数
${#arr_name[@]}
#或者
${#arr_name[*]}

数组说明

  1. 数组元素的下标由 0 开始编号
  2. 下标使用字符也可以
  3. 可以不使用连续的下标,范围没有限制
上一篇下一篇

猜你喜欢

热点阅读