Chinaunix首页 | 论坛 | 博客
  • 博客访问: 238506
  • 博文数量: 65
  • 博客积分: 1430
  • 博客等级: 中尉
  • 技术积分: 700
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-27 00:30
文章分类
文章存档

2011年(65)

分类: LINUX

2011-07-21 11:26:40

一,变量
    1.本地变量 只对当前shell有用,对子shell无效
    2.环境变量 对子shell有效
      定义(导入)环境变量的方式 :export abc=’ab‘
      export 查看(导出)系统所有的环境变量
     一些内置环境变量的含义:
     DISPLAY:定义图形界面所显示到的位置
     HISTSIZE:定义保存的历史记录数量
     HOME:定义用户家目录
     HOSTNAME:主机名
     LANG:定义使用的语言
     LOGNAME:登录系统的用户名
     PWD :当前目录
     SHELL:定义当前使用的shell
     PS1:       
          eg:export PS1='\t\!\$'
             export PS1='[\u@\u \w]\$'(恢复到初始的变量)
             man bash里有关于PS1的内容。
    3.特殊变量
      $?  代表上一个命令执行后的退出状态
    4.位置变量
      位置变量指的是shell程序在运行时传入的参数。程序中可以用变量的形式
      来 调用这些   参数。这些参数被存放到1~9的9个变量名中,被形象的称
      为位置变量。同普通变量一样,  位置变量用$前缀加这个数字来表示。
     例  如,第5个参数,表示为$5。
     例如要向shell程序传  递参数“Beijing is a beautiful city”
      eg1:vim test1.sh
          #! /bin/bash
           echo "$1"
            echo "$2"
            echo "$3"
            echo "$4"
            echo "$5"
           chmod +x ./test.sh
           ./test1.sh beijing is a beautiful city   
      eg2:vim test.sh
          #!/bin/bash
          echo "$1"
          echo "$2"
          :wq
          chmod +x ./test.sh
          ./test wangxing lizhiqiang(给shell传俩参数)
     eg3:传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商
         vim test.sh
         #!/bin/bash
         echo "first number $1"  (表示输出第一个数)
         echo "second number $2" (表示输出第二个数)
         echo " $(($1+$2))"      (输出两数之和)
         echo "$[$1-$2]"         (输出两数之差)
         echo "$[$1*$2]"         (输出两数之积)                                                                  二,配置文件类型
     从作用范围划分:
     1.全局
       /etc/profile, /etc/profile.d/* ,/etc/bashrc
     2.局部
       ~/.bash_profile,~/.bashrc,~/.bash_logout
      
shell:(1)交互式登录shell
                调用的文件依次为:
               /etc/profile -->/etc/profile.d/*-->~/.bash_profile
               -->~/.bashrc-->/etc/bashrc
          
            (2)非交互式登录shell(系统启动时自动执行)
               调用的文件依次为:
               ~/.bashrc-->/etc/bashrc-->/etc/profile.d/*
     从功能方面划分
     1.profile类
       功能:1)设置环境变量
             2)运行用户登录要执行的一些命令
     2.bashrc类
       功能:1)设置别名
             2)设置本地变量
    
三,输入/输出重定向
    标准输入:/dev/stdin, 0  默认:从keyboard(键盘)输入 
    标准输出:/dev/stdout, 1 默认:从monitor(显示器)输出
    错误输出:/dev/stderr, 2 默认:从monitor(显示器)输出
    重定向:是指不是有系统提供的标准输入或输出端口,而进行重新的指定
    输出重定向:eg:该从显示器输出,不让他从显示器输出,而把他保存到某个文件
    输入重定向:eg:不从键盘输入,而进行重新指定
   
    输入重定向  <
    输出重定向  >  >>(追加输出重定向)
      eg: ls –l /etc >/tmp(将 ls -l列出的内容覆盖输出到/tmp而不是通过显示器显示出来)
           ls –l /etc >>/tmp (追加输出到/tmp)
           ls /tec >/tmp/etc.out 2>/tmp/etc.err
                (如果正确则输出到/tmp/etc.out,如果错误则输出到/tmp/etc.err)
     错误输出重定向 2>   2>>(追加错误输出重定向)
     &>  将正确的和错误的输出重定向到一个文件里
     2>& 将标准错误重定向到标准输出
     set -C 避免使用覆盖重定向(拒绝覆盖重定向)
     set +C 关闭上面的功能
     自定义输出重定向:
     不使用0,1,2
    exec 3> /tmp/myout.out
      (定义3这个描述符,适用于想多次向某个文件中重定向,避免多次打开关       闭/tmp/myout.out文件 )
    ls –l /etc >&3
    exec 3>&- (撤销3这个描述符)
阅读(3195) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~