码迷,mamicode.com
首页 > 系统相关 > 详细

Linux变量

时间:2017-11-26 20:29:55      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:linux bash shell

变量的取用: echo  (两种方式

 

[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退出即结束

 

Linux变量

标签:linux bash shell

原文地址:http://blog.51cto.com/13488618/2044464

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!