Linux shell的变量分类
在Shell中有三种变量:内部变量,环境变量,用户变量。
内部变量:系统提供,不用定义,不能修改
环境变量:系统提供,不用定义,可以修改,可以利用export将用户变量转为环境变量.
用户变量:用户定义,可以修改
(1)内部变量(系统变量,环境变量,参数变量,预定义变量)
内部变量是Linux所提供的一种特殊类型的变量,这类变量在程序中用来作出判断。在shell程序内这类变量的值是不能修改的。
表示方法 描述
$n $1 表示第一个参数,$2 表示第二个参数 ...
$# 命令行参数的个数
$0 当前程序的名称
$? 前一个命令或函数的返回码
$* 以"参数1 参数2 ... " 形式保存所有参数
$@ 以"参数1" "参数2" ... 形式保存所有参数
$$ 本程序的(进程ID号)PID
(2) 环境变量
Linux环境(也称为shell环境)由许多变量及这些变量的值组成,由这些变量和变量的值决定环境外观。这些变量就是环境变量。包括两部分,一是由系统设置的,主要包括: HOME,LOGNAME,MAIL,PATH,PS1,PWD,SHELL,TERM
二是,用户在命令行中设置的,使用export命令,但是用户注销时值将丢失
(3)用户变量(私有变量,本地变量)
在命令行中自己设定的.
用户可以通过这些变量获得系统、环境的信息
环境变量相当于给系统或用户应用程序设置的一些变量, 具体起什么作用这当然和具体的环境变量相关。比如PATH, 是告诉系统, 当要求系统运行一个程序而没有告诉它程序所在的完整路径(或者绝对路径)时, 系统除了在当前目录下面寻找此程序外, 还应到由PATH变量定义的目录中去查找.这个PATH和WINDOWS下面作用一样哈
在bash中有很多预定义环境变量
用户可以用set或env查询当前的环境变量
常用的预定义变量:
HOME:当前用户的主目录
PATH:当前用户的可执行文件搜索路径
LANG:程序应该使用的默认语言
可以用 echo $变量名字 来查看变量
echo $PATH 这是可执行程序的搜索路
用户变量是用户在编写shell过程中,可以在shell程序内任意使用和修改的变量。(以字母或下划线开头,通常字母是大写母)
赋值:变量名=变量值
获取变量值 ${变量名}
例:VAR=hellorhce ;赋值
echo ${VAR} ;显示变量值
例:var=helloworld ;赋值
echo ${VAR} ;显示变量值
使用echo完成简单地输出
echo “hello world”
VAR=“hello”
echo ${VAR} world
也可以使用printf来产生各种格式的输出 printf "hello\nworld\n"