显示变量:echo $MAIL或者 echo ${MAIL}

[CJP@CJP ~]$ echo $MAIL

/var/spool/mail/CJP

[CJP@CJP ~]$ echo ${MAIL}

/var/spool/mail/CJP

设置变量:用等号(=)赋值就可以,可以实现设置以及修改

[CJP@CJP ~]$ myname=CJP

[CJP@CJP ~]$ echo $myname

CJP

[CJP@CJP ~]$ myname=CJP2

[CJP@CJP ~]$ echo $myname

CJP2

变量设置的一些规则:

  • a、等号两边不能直接接空格,如 myname = CJP,会出现

[CJP@CJP ~]$ myname = CJP

bash: myname: command not found

[CJP@CJP ~]$ myname=CJP CJP2

bash: CJP2: command not found

  • b、变量名称只能是英文和数字,但是开头字符不能是数字

[CJP@CJP ~]$ 2myname=CJP

bash: 2myname=CJP: command not found

  • c、变量内容如果有空格,可以使用双引号或者单引号将内容结合起来

双引号内特殊字符如$,可以保持原有的特性

[CJP@CJP ~]$ var="language is $LANG"

[CJP@CJP ~]$ echo $var

language is zh_CN.utf8

变量内容存在单引号的时候,用双引号

[CJP@CJP ~]$ name=CJP's name

>

> ^C

[CJP@CJP ~]$ name='CJP's name'

> ^C

[CJP@CJP ~]$ name="CJP's name"

[CJP@CJP ~]$ echo $name

CJP's name

单引号内特殊字符是纯文本

[CJP@CJP ~]$ var='language is $LANG'

[CJP@CJP ~]$ echo $var

language is $LANG

  • d、可用转意字符“\”将特殊字符([ENTER],$,\,!,空格等)变成一般字符

[CJP@CJP ~]$ var=\$

[CJP@CJP ~]$ echo $var

$

[CJP@CJP ~]$ name=CJP\'s\ name

[CJP@CJP ~]$ echo $name

CJP's name

  • e、当一串命令中需要得到其他命令提供的信息,可以使用反单引`command`或者$(command)

[CJP@CJP ~]$ path=`echo $PATH`

[CJP@CJP ~]$ echo $path

/home/CJP/qtsdk-2010.05/qt/bin:/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/CJP/bin

[CJP@CJP ~]$ path=$(echo $PATH)

[CJP@CJP ~]$ echo $path

/home/CJP/qtsdk-2010.05/qt/bin:/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/CJP/bin

[CJP@CJP ~]$ version=$(uname -r)

[CJP@CJP ~]$ echo $version

2.6.32-220.el6.i686

进入目前内核的模块目录

[CJP@CJP ~]$ cd /lib/modules/$(uname -r)/kernel

[CJP@CJP kernel]$

或者

[CJP@CJP ~]$ cd /lib/modules/`uname -r`/kernel

[CJP@CJP kernel]$

  • f、为了增加变量内容,可用 “$var” 或者 ${var}累加内容

[CJP@CJP ~]$ var=C

[CJP@CJP ~]$ var="$var"JP

[CJP@CJP ~]$ echo $var

CJP

[CJP@CJP ~]$ var=${var}cjp

[CJP@CJP ~]$ echo $var

CJPcjp

  • g、变量如果要在其他子进程中执行,需要通过export使变量变成环境变量

[CJP@CJP ~]$ name=CJP

[CJP@CJP ~]$ bash ==进入子进程

[CJP@CJP ~]$ echo $name

==没有变量内容

[CJP@CJP ~]$ exit ==离开子进程

exit

[CJP@CJP ~]$ export name ==设置环境变量

[CJP@CJP ~]$ bash

[CJP@CJP ~]$ echo $name

CJP

[CJP@CJP ~]$ exit

exit

注:子进程(在目前的shell下打开新的shell,新的shell就是子进程)

  • h、取消变量可以使用unset

[CJP@CJP ~]$ echo $var

CJPcjp

[CJP@CJP ~]$ unset var

[CJP@CJP ~]$ echo $var

[CJP@CJP ~]$

bash学习之变量的显示和设置的更多相关文章

  1. Shell--变量的显示与设置、环境变量、语系变量

    1.变量的显示与设置:echo,unsetecho:显示一段文字,也可以读出变量内容并打印出来  格式echo $变量或者echo ${变量}语 法:echo [-neE][字符串]或 echo [- ...

  2. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  3. 学习鸟哥私房菜--linux bash 的环境变量ps1设置

    bash里边的变量ps1是用户平时的提示符,系统默认为[username@host 工作目录]$.关于ps1的相关介绍详见:http://www.cnblogs.com/starspace/archi ...

  4. Windows下环境变量显示、设置或删除操作详情

    显示.设置或删除 cmd.exe 环境变量. SET [variable=[string]] variable 指定环境变量名. string 指定要指派给变量的一系列字符串. 要显示当前环境变量,键 ...

  5. BASH内置变量

    BASH内置变量 ().BASH 作用:bash的完整路径.默认为/bin/bash ().BASH_ENV 作用:仅在非交互模式中适用.在执行shell脚本时,会先检查该变量是否指定了启动 脚本,若 ...

  6. Bash中的变量

    Bash中的变量1.用户定义的变量变量的定义  用户定义的变量有字母数字及下划线组成,并且变量名的第一个字符不能为数字.            与其它UNIX名字一样,变量名是大小写敏感的. 对于变量 ...

  7. BASH 学习笔记小结

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...

  8. 【Linux】linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法

    linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法   linux bash shell之变量替换::=句法.=句法.:-句法.-句法. ...

  9. Linux命令之hostname - 显示或设置主机名

    我使用过的Linux命令之hostname - 显示或设置主机名 本文链接:http://codingstandards.iteye.com/blog/804648   (转载请注明出处) 用途说明 ...

随机推荐

  1. hdu 4617 Weapon(叉积)

    大一学弟表示刚学过高数,轻松无压力. 我等学长情何以堪= = 求空间无限延伸的两个圆柱体是否相交,其实就是叉积搞一搞 详细点就是求两圆心的向量在两直线(圆心所在的直线)叉积上的投影 代码略挫,看他的吧 ...

  2. linux kernel 模块多文件编译

    /*************************************************************************** * linux kernel 模块多文件编译 ...

  3. 求双连通分量的详解。(根据刘汝佳的训练指南p314)

    无向图的双连通分量 点-双连通图:一个连通的无向图内部没有割点,那么该图是点-双连通图.         注意:孤立点,以及两点一边这两种图都是点-双连通的.因为它们都是内部无割点. 边-双连通图:一 ...

  4. apache开源项目--Synapse

    Apache Synapse一个易于使用.轻量级的XML与Web Services管理和集成中间件.可用于搭建SOA和ESB的基础平台.Apache Synapse支持多种标准包括:XML.XSLT. ...

  5. Buffer cache 的调整与优化

    Buffer cache 的调整与优化 -============================== -- Buffer cache 的调整与优化(一) --==================== ...

  6. 【编程基础】const与#define的区别

    [前言] 相信大家看别人代码的时候都遇到过,有人用#define定义,也有人用const定义. 那么两者的区别到底是什么呢?哪个更好用呢? 网上查了又查,下面总结一下. [总结] 编译器处理方式不同 ...

  7. android中sqlite3常用命令

    1)打开数据库 在adb shell模式下执行命令sqlite3 + 数据库名称,例如打开email中的EmailProvider.db数据库: 2)sqlite3特殊命令 大多数候,sqlite3读 ...

  8. linux的文件属性介绍、目录及路径表示方法

    一.认识linux文件 认识linux下的文件需要先学习命令:ls. 该命令用于显示指定目录下的内容,其中最常用的参数有: -l显示目录和文件的完整属性信息 -a显示所有文件和目录,包含隐藏文件和目录 ...

  9. (三)相遇射线的3D碰撞盒

    序 在2D游戏中,我们知道处理碰撞时,需要设置精灵遮罩图.同样,进入3D,处理碰撞时需要3D模型作为“遮罩图”. 索尼克 飞檐走壁   目的 (1)处理模型间的碰撞问题         (2)获取鼠标 ...

  10. User experience

    User experience 以用户为中心, --通过简单的操作快速完成美好的任务 简单 聚焦,我在干什么?我接下来要干什么? 删除.隐藏,合并.分组 使用背景色,而非边框来划分区域 碎片化,电话不 ...