Shell变量知识

 

1.什么是变量

2.变量类型

shell中的变量分为:环境变量和普通变量
环境变量:也称为全局变量,可以在创建他的shell和其派生出的子shell中使用。环境变量又分为内置环境变量和系统自定义环境变量
普通变量:也称为局部变量,只能在创建他们的函数或脚本中使用。

3.环境变量

  • 环境变量一般指使用export内置命令导出的变量,用于保证shell的运行环境,保证shell的正常运行。
    环境变量可以在命令行中设置和创建,但用户退出命令行时这些变量会丢失,若想永久生效,需要定义在用户家目录下的~/.bash_profile和~/.bashrc或全局配置文件:/etc/profile和/etc/bashrc.
  • 环境变量名字均采用大写形式。如:HOME、PATH、SHELL、UID、USER
3.1 查看已定义环境变量

在查看设置的变量时,有3个命令可以显示set、env、declare
set输出所有的变量,包括全局和局部
env只输出全局变量。
declare输出所有的变量、函数、整数和已导出的变量

3.2 自定义环境变量

方式1:变量赋值时使用export关键字
export NAME="simi"
方式2:变量赋值后export跟变量名
NAME="simi";export NAME
方式3:使用带-x选项的declare内容命令也可以实现同样的功能
declare -x NAME="simi"

3.3 显示和取消环境变量
3.3.1 显示环境变量

echo和printf
如:
echo PATHechoUSER
echo $HISTORY

3.3.2 取消环境变量

unset可以取消本地变量和环境变量,格式如下:
unset 变量名

4.普通变量

4.1 普通变量定义

一般有3种写法:
变量名=value # 赋值时不加引号
变量名=‘value’ # 赋值时加单引号
变量名=“value” # 赋值时加双引号
注意:变量值可以用单引号或双引号引起来,也可以不加引号,但含义是不同的。
经验:

  • 数字变量定义不加引号
  • 字符串定义加上双引号,字符串中有空格时,也要加双引号。
  • 需要原样输出的加单引号
4.2 普通变量的输出

变量的输出:
var或{var}
经验:什么时候加括号,什么时候不加?当变量后有其它字符时需要加{},如不等于dbnametname不等于dbname_tname,类似于金庸新著
如 str="hello world"
echo strecho{str}
又如,示例1:
a=172.16.126.11
b='172.16.126.11'
c="172.16.126.11"
echo "a=a"echo"b=b"
echo "c=接上,示例:c"接上,示例2:a=172.16.126.11−a
b='172.16.126.11-a′c="172.16.126.11−a"
echo "a=a"echo"b=b"
echo "c=${c}"

变量定义示例:
不加引号:num1=10
单引号:a='$USER'
双引号:str="hello world,nice to meet you!"

补充:
反引号的使用:希望将命令的执行返回结果赋值给变量,``<=>$()
如:
a=ls
等价于:
a=$(ls)

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





posted @ 2019-01-30 17:06  whatislinux  阅读(142)  评论(0编辑  收藏  举报