Bash中的变量
1.用户定义的变量
变量的定义
  用户定义的变量有字母数字及下划线组成,并且变量名的第一个字符不能为数字.
            与其它UNIX名字一样,变量名是大小写敏感的.
 对于变量,用户可按如下方式赋值:
              name = value
变量的引用
              在引用变量时,需在前面加$符号,用户也可以在变量间进行相互赋值(一个变量的值赋给另一个变量),如:
              (前面的$是命令提示符)
              $JOHN=john
              $NAME=$JOHN
              $echo Hello $NAME
              Hello john
              
              也可以用变量和其他字符组成新的字,这时可能需要把变量用{}括起,如:

              $ SAT = Satur
              $ echo Today is ${SAT}day
              Today is Saturday

对于未赋值的变量,Bash以空值对待,用户也可以用unset命令清除给变量
              赋的值.
              
              Bash中还可以使用数组变量,其赋值有两种:
              
              (1) name[index] = value
              (2) name = (value1 ... valuen) 此时下标从0开始
                            ch=(1 2 3 4)
                            echo “${ch[0]}”
                            n=1
                            echo “${ch[$n]}”
              
              数组下标的范围没有任何限制,同时也不必使用连续的分量.
 
Bash中关于变量的内建命令有:
              
              (1) declare和typeset.两者具有一样的功能.其选项有:
                  [-/+]a    设置/撤消变量的数组属性
                  [-/+]i    设置/撤消变量的整数属性
                  [-/+]r    设置/撤消变量的只读属性
                  [-/+]x    设置/撤消变量的输出属性
                  -p var    显示变量属性
              (2) export和local.
                  export把变量输出到环境中,用法为:
                  export name
                  export name = value

这里需要简单介绍一下export的作用:当Bash shell执行一个
                  程序时,将首先为该程序建立一个新的执行环境,称为子shell,
                  在Bash Shell中变量都是局部的,即它们只是在创建它们的子
                  Shell中是有意义的,使用export后,变量被设置为全局变量,这
                  时可以被其它子Shell所识别

local标记变量为局部的(如只能被函数内部使用),用法为:
                  local name
                  local name = value
              (3) readonly.
                  指定变量为只读,执行后,改变量不能被再次赋值,用法为:
                  readonly name
2.位置变量或Shell参数
              Bash Shell在解释用户命令时,将把命令行的第一个字作为命令 $0 ,
而其它字作为参数通过位置变量传递给程序.$1,...,$9分别代表第一,...,九个参数.
其中1-9是真正的参数名,"$"符只是用来标识变量的替换.
              位置变量$0指命令对应的可执行名.
              其它的还有:
              $#    送给命令的参数个数
              $@    所有的参数,每个用双括号括起
              $*    所有的参数,用双括号括起
            3.与Shell有关的变量
             (1) Shell自身设置的一些常用变量:
               LINENO       正在执行的命令在脚本中的行号
               PWD          用户当前目录的全名
               OLDPWD       最近一次执行cd之前,用户当前目录的全名
               PPID         父进程ID
               $            当前进程ID
               RANDOM       随机数(范围0-32767)
               SECONDS      Bash Shell的运行时间,单位是秒
               REPLY        select和read命令使用,以后会讲到
               OPTARG
               ORTIND       这两个变量由getopt命令设置
               UID          当前用户的User ID
               _            上一条命令使用的最后一个参数
             (2) 影响Shell行为的一些常用环境变量:
               PATH         命令搜索路径,以冒号为分隔符.注意与DOS下不同的是,
                            当前目录不在系统路径里
               HOME         用户home目录的路径名,是cd命令的默认参数
               COLUMNS      定义了命令编辑模式下可使用命令行的长度
               EDITOR       默认的行编辑器
               VISUAL       默认的可视编辑器
               FCEDIT       命令fc使用的编辑器
               HISTFILE     命令历史文件
               HISTSIZE     命令历史文件中最多可包含的命令条数
               HISTFILESIZE 命令历史文件中包含的最大行数
               IFS          定义SHELL使用的分隔符
               LOGNAME      用户登录名
               MAIL         指向一个需要SHELL监视其修改时间的文件.当该文件修改后,
                            SHELL将发消息You hava mail给用户
               MAILCHECK    SHELL检查MAIL文件的周期,单位是秒
               MAILPATH     功能与MAIL类似.但可以用一组文件,以冒号分隔,每个文件后
                            可跟一个问号和一条发向用户的消息
               SHELL        SHELL的路径名
               TERM         终端类型
               TMOUT        SHELL自动退出的时间,单位为秒,若设为0则禁止SHELL自动退出
               PROMPT_COMMAND       指定在主命令提示符前应执行的命令
               PS1          主命令提示符
               PS2          二级命令提示符,命令执行过程中要求输入数据时用
               PS3          select的命令提示符
               PS4          调试命令提示符
               MANPATH      寻找手册页的路径,以冒号分隔
               LD_LIBRARY_PATH      寻找库的路径,以冒号分隔
Bash中对变量的操作
1.条件变量替换:
              Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换
            条件放在{}中.
              (1) ${value:-word}
                  当变量未定义或者值为空时,返回值为word的内容,否则返回变量的值.
              (2) ${value:=word}
                  与前者类似,只是若变量未定义或者值为空时,在返回word的值的同时将
                  word赋值给value
              (3) ${value:?message}
                  若变量以赋值的话,正常替换.否则将消息message送到标准错误输出(若
                  此替换出现在Shell程序中,那么该程序将终止运行)

Bash中的变量的更多相关文章

  1. bash 中的变量

    bash 中的变量 Linux command line 笔记 变量无需声明,自动创建 var=abc #变量a赋值为字符串abc var="hello world" #字符串里有 ...

  2. Bash 中 SHLVL 变量为 1000 的时候

    SHLVL 环境变量代表 Shell 嵌套执行的深度. $ echo $SHLVL 1 $ bash $ echo $SHLVL 2 $ bash $ echo $SHLVL 3 在 Bash 里,这 ...

  3. 在Linux系详解Linux bash中的变量

    (大讲台:国内首个it在线教育混合式自适应学习) 统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家: 一.bash变量类型: ...

  4. Linux bash中的变量分类

    1.本地变量 VAR=XYZ 2.局部变量 local VAR=XYZ 3.环境变量 在子shell中可以起作用 export VAR=XYZ 4.位置变量 $0 脚本名本身 $1 第一个参数 $2 ...

  5. bash中声明变量方法

    bash提供了declare命令来声明变量,该命令的基本语法如下: declare attribute variable      其中,attribute表示变量的属性,常用的属性有如下所述.   ...

  6. bash 中的变量可以这么用

    举个例子: t.sh ====================== #!/bin/bash ./a.sh ./b.sh ======================= a.sh =========== ...

  7. 手把手教你 bash中给变量赋值时 ' 和 " 和 ` 和 $() 的使用

    1.赋值指令 var='变量内容' var="变量内容" var=`command` var=$(command) var=变量内容 2.格式要求 =两边不能有空白字符 错误示例 ...

  8. Bash简明教程--变量

    1. 前言 Bash是一门流行在*nix系统下的脚本语言.作为一门脚本语言,变量是一门语言的基本要素,在这篇教程中,我们将学习Bash中的变量是怎么表示的,以及变量相关的一些语法规则. 2. Bash ...

  9. bash中一些基础知识

    bash是linux操作系统的shell.以下是Multi-Perspective Sentence Similarity Modeling论文实现时碰到的一个bash: #!/bin/bash py ...

随机推荐

  1. 关于js向jsp中传输中文乱码问题

    最近做项目遇到的js向jsp中传中文结果是乱码,不知道是否是我换了用eclipse的原因还是什么,以前用的MyEclipse反正最后解决办法如下: 1.把js文件复制到桌面: 2.打开文件并用另存为u ...

  2. jQuery 数据滚动(上下)

    setInterval(function() { jq('.sjbg02 li:first').animate({ 'height': '0', 'opacity': '0' }, 'slow', f ...

  3. 如何删除tomcat下的一目

    不知道我有没有把问题想简单了,是不是应该把webapps下对应的文件夹删了就可以了. work下面对应的也删掉 这个取决于你在tomcat下发布那个项目的方式. 首先是工程的根目录要删除,然后是工程相 ...

  4. loadrunner多负载机联合产生负载

    解说一: 多机联合产生负载 LOADRUNNER 对应用程序施压时,采用的方法就是让一台机器模拟很多用户,同时向被 测用户发送请求或进行操作.这样,如果一台测试机器模拟的虚拟用户数过多,他本身性能的下 ...

  5. php 文件夹遍历俩种对比

    configu.phpindex.php新建文件夹 D:\xampp\htdocs\1test\use\useversion/configu.phpD:\xampp\htdocs\1test\use\ ...

  6. setAttribute的兼容性

    class和className兼容方法: object.setAttribute("class","content") 在IE8.Chrome.火狐.Opera ...

  7. jQuery常用及基础知识总结(三)

    1.通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法. 2. ...

  8. POJ 1426 Find The Multiple BFS

    没什么好说的 从1开始进行广搜,因为只能包涵0和1,所以下一次需要搜索的值为next=now*10 和 next=now*10+1,每次判断一下就可以了,但是我一直不太明白我的代码为什么C++提交会错 ...

  9. ListView下拉刷新、上拉载入更多之封装改进

    在Android中ListView下拉刷新.上拉载入更多示例一文中,Maxwin兄给出的控件比较强大,前面有详细介绍,但是有个不足就是,里面使用了一些资源文件,包括图片,String,layout,这 ...

  10. 转 Android网络编程之使用HttpClient批量上传文件 MultipartEntityBuilder

    请尊重他人的劳动成果,转载请注明出处:Android网络编程之使用HttpClient批量上传文件 http://www.tuicool.com/articles/Y7reYb 我曾在<Andr ...