`
8366
  • 浏览: 799073 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

环境和shell变量

阅读更多

 

 本地变量

 

      1.显示变量

           aa=123

            echo ${aa} 或者 echo $aa

      2.清除变量

           unset ${aa}

      3 显示本地所有的shell变量

          set

      4.测试变量是否已经设置

         colour=blue

         echo "The sky is is ${colour : - black} today" 

         The sky is is  blue today

               如果 colour 变量没有值 则会使用默认值

 

      5.设置只读变量

          readonly coluer   试图改变只读变量的值 将会报一个错误

          查看所有的 只读变量 readonly

 

环境变量

 

       1.设置环境变量

         aa=123

          export aa

       2.显示所有的环境变量

          env

       3.清除环境变量

           unset

 

  将变量导出到子进程

 

        假设有2个脚本 father.sh ,child.sh

 

        在father.sh 中引用了 child.sh ,在father 中使用的变量 只要 使用 export 导出之后再 child.sh 就可以读

         到变量的值了

 

 特定的变量参数

 

 

      1. $# 传递到脚本的参数个数

  2. $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个

  3. $$ 脚本运行的当前进程ID号

  4. $! 后台运行的最后一个进程的进程ID号

  5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数

  6. $- 显示shell使用的当前选项,与set命令功能相同

  7. $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

 

 


shell中可能经常能看到:>/dev/null 2>&1

 

 

命令的结果可以通过%>的形式来定义输出

分解这个组合:“>/dev/null 2>&1” 为五部分。

1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt
2:/dev/null 代表空设备文件
3:2> 表示stderr标准错误
4:& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
5:1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"

因此,>/dev/null 2>&1也可以写成“1> /dev/null 2> &1”

那么本文标题的语句执行过程为:
1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 :接着,标准错误输出重定向 到 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

说清楚了吗,大家理解下吧!

顺便对比述说下这么用的好处!

   最常用的方式有:

command > file 2>file  与command > file 2>&1

它们 有什么不同的地方吗?


      首先command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中.command  > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道。
      而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容。
      从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会command > file 2>&1 这样的写法

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    linux超级基础系列——shell变量(本地变量和环境变量

    linux超级基础系列——shell变量(本地变量和环境变量 linux超级基础系列——shell变量(本地变量和环境变量

    SHELL JAVA环境变量配置脚本

    linux初学者写的小脚本,用来配置JAVA环境变量,纯属练手,不喜勿喷

    shell一键安装jdk8配置环境变量

    通过shell脚本一键实现jdk8的安装和环境变量配置工作。

    linux超级基础系列——shell变量(本地变量和环境变量).pdf

    linux超级基础系列——shell变量(本地变量和环境变量).pdf

    shell编程.doc(变量 用户定义变量,环境变量,位置变量(shell 参数) )

    主要内容: .shell基础 基本介绍,环境,选项,特殊字符 .shell变量 用户定义变量,环境变量,位置变量(shell 参数) .shell script编程 条件测试,循环及重复控制

    UNIX命令及SHELL编程

    14_登录环境-环境和shell变量.PDF 15_登录环境-引号.PDF 16_基础shell编程-shell脚本介绍.PDF 17_基础shell编程-条件测试.PDF 18_基础shell编程-控制流结构.PDF 19_基础shell编程-shell 函数.PDF 20_基础shell...

    shell 编程指南pdf

    第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...

    shell编程 linux

    014环境和shell变量.pdf 015引号.pdf 016shell脚本介绍.pdf 017条件测试.pdf 018控制流结构.pdf 019shell 函数.pdf 020向脚本传递参数.pdf 021创建屏幕输出.pdf 022创建屏幕输入.pdf 023调试脚本.pdf 024...

    Linux Shell编程3/3

    _grep家族 |_awk介绍 |_sed用法介绍 |_合并与分割 |_tr用法 第三部分登录环境 |_登录环境 |_环境和shell变量 |_引号 第四部分基础shell编程 |_shell脚本介绍 |_条件测试 |_控制...

    Shell自学pdf.zip

    第14 章环境和shell 变量.PDF 第15 章引号.PDF 第16 章shell 脚本介绍.PDF 第17 章条件测试.PDF 第18 章控制流结构.PDF 第19 章shell 函数.PDF 第20 章向脚本传递参数.PDF 第21 章创建屏幕输出.PDF 第22 章创建屏幕...

    从数据库中取变量传递给shell,生成环境变量

    从DB中取检索值传递给shell,生成环境变量 1. 编写myshellpara.sql 通过spool 执行一个SQL读取所要的值,结果保存在myshellvar_export.sh set feedback off; set heading off; set pagesize 0; set linesize 1000; ...

    shell 环境变量

    几个有用的shell变量和环境变量

    LINUX与UNIX_Shell编程指南

    第一部分 shell 第1章 文件安全与权限 第2章 使用find和xargs 第3章 后台执行命令 ...第14章 环境和shell变量 第15章 引号 第四部分 基础shell编程 第16章 shell脚本介绍 第17章 条件测试 等等,内容较多

    shell基础之环境变量 位置参数变量 预定义变量

    详细介绍了shell基础之环境变量 位置参数变量 预定义变量,并附有例子详细演示截图。适合初学者。

    Linux Shell编程教程

    第14章环境和shell变量 第15章引号 第16章shell脚本介绍 第17章条件测试 第18章控制流结构 第19章shell 函数 第20章向脚本传递参数 第21章创建屏幕输出 第22章创建屏幕输入 第23章调试脚本 第24章shell嵌入命令 第25...

    shell帮助文档

    14-环境和shell变量.pdf 15-引号.pdf 16-shell脚本介绍.pdf 17-条件测试.pdf 18-控制流结构.pdf 19-shell 函数.pdf 20-向脚本传递参数.pdf 21-创建屏幕输出.pdf 22-创建屏幕输入.pdf 23-调试脚本.pdf .................

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    第十四章 环境和SHELL变量 第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第...

    Linux Shell 编程 入门、提高、精通

    第14章环境和shell变量 第15章引号 第四部分基础shell编程 第16章shell脚本介绍 第17章条件测试 第18章控制流结构 第19章shell 函数 第20章向脚本传递参数 第21章创建屏幕输出 第22章创建屏幕输入 第23章调试脚本 ...

    shell命令精品教程

    8、grep 家族 9、AWK 介绍 10、sed 用法介绍 11、合并与分割 12、tr 的用法 13、登录环境 14、环境和shell 变量 15、引号 基础s h e l l编程 16、shell脚本...

    shell编程指南,shell脚本,本书共分五部分全。grep家族,sed,AWK,正则表达式,tr用法

    第14章 环境和shell变量 132 第15章 引号 146 第四部分 基础shell编程 第16章 shell脚本介绍 151 第17章 条件测试 154 第18章 控制流结构 160 第19章 shell函数 202 第20章 向脚本传递参数 224 第21章 创建屏幕输出...

Global site tag (gtag.js) - Google Analytics