1. 变量的显示,echo

  echo $变量   或    echo ${变量}

  eg. echo $HOME   或   echo ${HOME}

2. 变量的设置

  变量的设置规则:

    (1)变量与变量内容以一个等号“=”来连接

        eg. myname=name

    (2)等号两边不能直接接空格符

    (3)变量名称只能是英文字母与数字,但不能以数字开头

    (4)变量内容若有空格符,可使用双引号或单引号将变量内容结合起来

        eg. myname="my name is XX"

        需要注意的是:

        1)双引号内的特殊字符,如$等,可以保有原本的特性

          eg. var="lang is $LANG"(其中,$LANG表示变量LANG的值)

             则“echo $var”可得“lang is zh_CN.UTF-8”

        2)单引号内的特殊字符则仅为一般字符

          eg. var=‘lang is $LANG’(其中,$LANG表示变量LANG的值)

             则“echo $var”可得“lang is $LANG”

    (5)可用转义字符“\”将特殊符号(eg.【Enter】、$、\、空格符、!等)变成一般字符

    (6)若变量需要在其他子进程执行,则需要以export来使变量变成环境变量

        eg. export PATH

    (7)通常,大写字符为系统默认变量,自行设置变量可以使用小写字符

    (8)取消变量的方法为,unset 变量名称

        eg. unset myname

    (9)在一串命令中,还需要通过其他命令提供信息

        eg. `命令`   或   $(命令)

       注意,第一个符号为反单引号

3. 环境变量,env   或   export

    (1)HOME,代表用户的主文件夹

    (2)SHELL,告知我们目前这个环境使用的shell是哪个程序,Linux默认使用/bin/bash的

    (3)HISTSIZE,“历史命令”,是我们曾经执行过的命令可以被系统记录下来,而记录的“条数”则是由这个值来设置的

    (4)MAIL,在收信时系统会去读取的邮件信箱文件

    (5)PATH,执行文件查找的路径,目录与目录之间以冒号“:”分隔,由于文件的查找是依据顺序按照PATH变量内的目录来查询的,所以PATH中目录的顺序也是十分重要的

    (6)LANG,重要!!!语系数据,中文编码通常是zh_CN.gb2312或zh_CN.UTF-8

    (7)RANDOM,随机数。我们可以通过这个随机数文件相关的变量($RANDOM)来随机去的随机数量。在BASH环境下,RANDOM的取值范围为0~32767

4. 查看所有变量(包括环境变量与自定义变量),set

5. 查看Linux到底支持多少语系,locale

6. 声明变量的类型,declare   或   typeset

   declare [-aixr] valiable

    (1)-a,将变量valiable定义为数组类型

    (2)-i,将变量valiable定义为整数数字类型

    (3)-x,与export一样,将变量valiable定义为环境变量

    (4)-r,将变量valiable设置成为readonly,不可被更改内容,也不能重设

7. 变量内容的删除、替换

变量设置方式 说明
${变量#关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除
${变量##关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除
${变量%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除
${变量%%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除
${变量/旧字符串/新字符串} 若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换
${变量//旧字符串/新字符串} 若变量内容符合“旧字符串”,则全部的旧字符串会被新字符串替换

8. 变量的测试与内容替换

    判断某个变量是否存在,减号“-”

      eg. username=${username-root}

       (1)若变量username不存在或为空时,“echo $username”的结果为root

         (2)若变量username存在且不为空时,“echo $username”的结果为username的值

      注,如果要求,在username未设置或为空字符串时,都将username内容设置为root

        → 则有,username=${username:-root}

    若只是想知道变量是否存在,如果不存在,就告知“notexit”,此时就可以用“?”

      eg. username=${username?notexit}

       (1)若变量username不存在,“echo $username”的结果为notexit

       (2)若变量username存在,则“echo $username”的结果为username的值

Linux之bash的变量的更多相关文章

  1. [转帖]linux bash环境变量简单总结

    linux bash环境变量简单总结 来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 需要简单学习一下. 其实 我都是直接放一个 .sh文件到 ...

  2. Linux系列教程(二十二)——Linux的bash变量

    上篇博客我们介绍了bash的一些基本功能,这是我们平时操作最频繁的.本篇博客我们介绍bash的变量,为后面编写shell脚本做铺垫. 1.什么是变量 变量是计算机内存的单元,其中存放的值可以改变. 当 ...

  3. Linux下Bash入门学习笔记

    学习好shell编程是很有用的,可以使用shell脚本轻巧地完成有趣的工作. 本文地址:http://www.cnblogs.com/yhLinux/p/4047516.html 1. Bash实例, ...

  4. Linux里设置环境变量的方法(export PATH)

    1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH ...

  5. linux下修改path变量(转载)

    比如要把/etc/apache/bin目录添加到PATH中 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,每当登出PATH就会恢复 2.#vi /etc/profile 在 ...

  6. 【转】Linux 技巧: Bash 参数和参数扩展

    重点看下清单7 现在,很多 Linux® 和 UNIX® 系统上都有 bash shell,它是 Linux 上常见的默认 shell.通过本文,您将了解到如何在 bash 脚本中处理参数和选项,以及 ...

  7. [转]在Linux里设置环境变量的方法

    在Linux里设置环境变量的方法(export PATH) 一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在“/opt/a ...

  8. [linux服务器][bash]让切换目录更方便

    本文转载:[linux服务器][bash]让切换目录更方便: 一,为何要使用这几个命令?   可能大家会有疑问,为何要使用这几个命令,   难道用cd不就可以切换目录了吗?   没错,使用cd就可以切 ...

  9. Linux —— Shell编程之变量赋值和引用

    Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...

随机推荐

  1. linux下挂载磁盘

    1.使用fdisk 查看硬盘信息 [root@localhost ~]# fdisk -l Disk /dev/sdb: 107.4 GB, 107374182400 bytes 255 heads, ...

  2. Spring boot 自定义一个starter pom

    用过springboot的自动配置会觉得非常方便,我们完全可以自己写一个starter pom,这样不仅可以有自动配置功能,而且具有更通用的的耦合度低的配置, 新建一个starter的maven项目, ...

  3. Linux监控命令之==>sar

    一.使用说明 sar 是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及 ...

  4. Selenium学习之==>Css Selector使用方法

    一.什么是Css Selector Css Selector定位实际就是HTML的Css选择器的标签定位 工具 Css Selector的练习建议大家安装火狐浏览器后,下载插件,FireFinder ...

  5. C++/C#结构体转化-二维数组

    String To bytes typedef struct VidyoClientInEventGroupChat_ { /*! Message (contents) to be sent to a ...

  6. 如何面对这个残酷的世界?——Java模拟

    1,问题引入: 房间里有100个人,每人都有100元钱,他们在玩一个游戏.每轮游戏中,每个人都要拿出一元钱随机给另一个人,最后这100个人的财富分布是怎样的? 2,问题思考: 今天有幸看到这道题目,起 ...

  7. [Usaco2017 Jan]Promotion Counting

    n只奶牛构成了一个树形的公司,每个奶牛有一个能力值pi,1号奶牛为树根.问对于每个奶牛来说,它的子树中有几个能力值比它大的.Inputn,表示有几只奶牛 n<=100000接下来n行为1-n号奶 ...

  8. Python中的sorted函数

    今天在做一个中文文本分类的项目,遇到了一个sorted函数,发现并不会用... 记录一下: sorted(list, key, reverse) list是给定的列表: key是排序过程调用的函数,也 ...

  9. 应用安全 - CMS - PHPCMS漏洞汇总

    CVE-2011-0644 Date: 2011.1 类型: /flash_upload.php SQL注入 影响版本:phpCMS 2008 V2 PHPCMS PHPCMS通杀XSS 在我要报错功 ...

  10. Vim文本编辑工具

    4文本编辑工具Vim Vim是vi的升级版,编辑文本时vi不会显示颜色而vim会显示颜色. 安装vim工具 #yum  install  –y  vim-enhanced Vim有三种模式:一般模式. ...