Shell变量类型主要有:环境变量,位置变量,预定义的特殊变量以及用户自定义变量等。

(一)环境变量

环境变量时用来设置系统运行环境的变量。环境变量的名称由大写字母组成,常用的如下:

名称

说明

HOME

用户主目录的全路径名

PATH

定义了一些目录路径,用冒号(:)隔开。

TERM

显示当前终端的类型

PWD

显示当前工作路径的绝对路径

PS1

主提示符

PS2

辅助提示符

SHELL

Shell的解释器路径

MAIL

当前邮箱的路径

LOGNAME

登陆用户的用户名

UID

当前用户的id

添加新路径可以用

$PATH=$PATH:路径名

 例,

shell java 环境变量 shell常用的环境变量_shell java 环境变量

(二)位置参数

根据出现在命令行上的参数来确定变量值,其中,$0代表当前执行的命令名或者是shell文件的文件名,$1,$2,$3,$4,$5,$6,$7,$8,$9分别代表第一个参数,当命令行中的参数多于9个时,使用shift命令来左移,

例,zzz文件内容

zzz文件内容
#! /bin/bash
Echo $0,$1,$2

输入参数为num1和test,输出$0当前执行命令名,$1赋值为num1,$1赋值为test:

shell java 环境变量 shell常用的环境变量_数组_02

#! /bin/bash
Echo $0,$1,$2
#! /bin/bash
Echo $0,$1,$2,$3,$4,$5,$6,$7,$8,$9
Shift
Echo $0,$1,$2,$3,$4,$5,$6,$7,$8,$9
Shift 3
Echo $0,$1,$2,$3,$4,$5,$6,$7,$8,$9

shell java 环境变量 shell常用的环境变量_赋值_03

(三)变量的操作

  • 创建变量

1. 用declare来申明变量

2. 用typeset来申明变量

3. 直接用变量名=变量值来定义变量(这个是最常用的)要是变量值有空格,用双引号就可以了

  • 区分变量:可以擦用大括号来区别变量和其他字符
  • 删除变量:用unset来删除变量

 

shell java 环境变量 shell常用的环境变量_数组_04

(四)变量赋值

 

  • 使用read命令来读入数据:


1. 多个变量之间用空格隔开

2. 若变量个数与数据个数相等,则对应赋值。

3. 若变量个数大于输入数据个数,则后面的变量赋值为空

4. 若变量个数小于输入数据个数,则多余的数据都赋值为最后一个变量。

shell java 环境变量 shell常用的环境变量_赋值_05

 

  • 直接赋值:

 

shell java 环境变量 shell常用的环境变量_环境变量_06

  • 使用命令行赋值:

shell java 环境变量 shell常用的环境变量_shell java 环境变量_07

  • 利用命令的输出结果赋值。里面的变量的赋值用反引号才可以。

shell java 环境变量 shell常用的环境变量_环境变量_08

 

  • 从文件中读入数据实现赋值:

 

(五)变量输出端:

  • echo

          echo可以输出字符串也可以输出变量,例,

shell java 环境变量 shell常用的环境变量_数组_09

  • Prinft格式化输出

命令格式说明:


  • \”:双引号
  • \\:反斜杠
  • \n:回车
  • \r:换行
  • %%:百分号
  • %d:数字
  • %f:浮点数
  • %s:字符


例,

shell java 环境变量 shell常用的环境变量_shell java 环境变量_10


 

(六)数组:

数组是一组数值的集合。

  • 数组的定义:
name=(element1,element2.。。。)
或者是name[index]=element
  • 数组的取值:
${name[index]}
  • 数组的长度
${#name[*]}
  • 数组的复制:

*和@都是提取整个数组元素

不同的是@是把原数组的内容复制到一个新数组中,生成的新数组和以前的数组是一样的,符号*是把原来的数组中所有的元素作为新数组的一个元素

all=(“$name[*]”)
list=(“${name[@]}”)


shell java 环境变量 shell常用的环境变量_数组_11

  • 数组元素的长度:
${#name[i]}

(七)算术运算

Expr命令:可以进行简单的整数运算,+,-,*,\,%,运算符,命令要用反引号


Let命令:与expr可以换用,不过let命令中不用加$符号


浮点数运算可以bc和awk运算

例,

shell java 环境变量 shell常用的环境变量_环境变量_12