[root@centos7 ~]#echo $HOME 变量名称前加$
[root@centos7 ~]#echo ${HOME} ${变量}
▓变量的设定规则
●变量与变量内容以一个等号『=』来连结
[root@centos7 ~]#name=wang
●等号两边不能直接接空格符
[root@centos7 ~]#name= wang 会报错
[root@centos7 ~]#name=wang xixi 会报错
●变量名称只能是英文字母与数字,但是开头字符不能是数字
[root@centos7 ~]#4name=wang
●变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来
[root@centos7 ~]#name="wang xixi"
●可用转义字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符
[root@centos7 ~]#name=wang\ xixi
●命令引用:name=`COMMAND` name=$(COMMAND)
[root@centos7 ~]#version=$(uname -r) $(指 令)
[root@centos7 ~]#version=`uname -r` `指令` 反向单引号
●变量引用:name="$USER" ${name}
[root@centos7 ~]#name="$USER" "$变量名称"
[root@centos7 ~]#name=${USER} ${变量}
双引号"":弱引用,其中的变量引用会被替换为变量值
[root@centos7 ~]#name="$USER"
[root@centos7 ~]#echo $name
root
单引号'':强引用,其中的变量引用不会被替换为变量值,而保持原字符串
[root@centos7 ~]#name='$USER'
[root@centos7 ~]#echo $name
$USER
●若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量
[root@centos7 ~]#name=wang 定义变量并赋值
[root@centos7 ~]#export name 声明为环境变量
[root@centos7 ~]#bash 打开子进程
[root@centos7 ~]#echo $name 可以执行
wang
●通常大写字符为系统默认变量,自行设定变量可以使用小写字符,方便判断 (纯粹依照使用者兴趣与嗜好) ;
▓取消变量的方法为使用 unset
[root@centos7 ~]#unset name
▓变量声明、赋值: export name=VALUE
declare -x name=VALUE
▓set 观察所有变量 (含环境变量与自定义变量)及一些函数
[root@centos6 app]#set
[root@centos6 app]#set|less 内容太多,分页显示
▓查看所有的环境变量 env 与printenv与 export 与declare -x
[root@centos6 app]#declare -x
[root@centos6 app]#export
[root@centos6 app]#env
[root@centos6 app]#printenv
▓“环境变量”与“bash的操作环境”意思不太一样,举例来说,PS1只是普通变量,并不是环境变量,但是PS1会影响到bash的接口(提示符)
▓bash内建的环境变量:
●PATH 执行文件搜寻的路径
●SHELL 当前环境使用的shell ,Linux 预设使用 /bin/bash
●USER 使用者名称
●UID
●HOME 用户的家目录
●PWD 目前用户所在的工作目
●SHLVL 查看shell的嵌套深度
[root@centos6 app]#echo $SHLVL
1
[root@centos6 app]#bash
[root@centos6 app]#echo $SHLVL
2
●LANG 语系数据
●MAIL 使用mail这个指令在收信时,系统会去读取的邮件信箱文件 (mailbox)
●HOSTNAME 主机名
●HISTSIZE 历史命令最大记录多少笔
__ (下划线)上一次使用的指令的最后一个参数(或指令本身)
[root@centos6 app]#echo $_ 类似于!$
[root@centos6 app]#ll /etc/issue
[root@centos6 app]#cat $_ 是变量,脚本中使用
[root@centos6 app]#ll /etc/issue
[root@centos6 app]#cat !$ shell的写法
▓只读变量:只能声明,但不能修改和删除
●声明只读变量: readonly name
declare -r name
[root@centos6 app]#readonly pi=3.14 直接写
[root@centos6 app]#pi=3.14;declare -r pi 分开写
●查看系统中定义的所有只读变量: readonly –p
declare -r
[root@centos6 app]#readonly -p
[root@centos6 app]#declare -r
●只读变量不能用unset删除,程序执行完或exit退出即结束
原文地址:http://blog.51cto.com/13488618/2044464