linux Shell学习笔记第二天

    变量




    1. 获取本机主机名

      #hostname



    2. 获取本系统版本号

      #uname -r



    3. 获取cpu类型


    4. 获取cpu的工作频率

      cat /proc/cpuinfo



    5. 获取内存使用情况

      #free -m



    6. 获取硬盘使用情况

      #df


    变量类型及变量操作





    1. 本地变量(一般所指)

      本地变量只存在用户当前shell中,当用户退出当前shell或开器一个新的shell,所设置的变量将会不存在


      设置变量


      #变量名=变量值


      显示变量


      #echo ${变量名}


      假设a=1 显示则 echo ${a}



    2. 环境变量(用的非常少)

      环境变量用于所有用户进程(经常称为子进程)。登录进程称为父进程。Shell中执行的用户进程均称为子进程。不像本地变量,环境变量可用于所有子进程,这包括编辑器、脚本和应用


      环境变量在用户注销时会消失,因此最好在$HOME/.bash_profile(/etc/profile)文件里直接定义



    3. 位置变量(跟脚本和函数有很大的关系)

      位置变量表示$0,$1… …$9 (只有9个)






































      $0


      $1


      $2


      $3


      $4


      $5


      $6


      $7


      $8


      $9


      脚本名字


      A


      B


      C


      D


      E


      F


      G


      H


      I


      $0=当前脚本名称


      向脚本中使用位置参数


      向系统命令传递参数



    4. 特殊变量

      $#        传递到脚本的参数列表个数


      $* ($@)    以一个单字符串显示所有向脚本传递的参数


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


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





    引用的必要性


        


        变量操作中,脚本执行变量赋值时最容易犯的一个错误就是引用错误


        例:echo abc *


            echo abc ‘*’


            echo Hit the star button to exit *


                


        引用的方式


            双引号(“) (需要排除以下几个)


            使用双引号可以引用除$、`、\、字符外的任意字符或字符串


            单引号(‘) (比较霸道,任何都可以转成字符)


            与双引号类似,不同的是shell会忽略任何引用值。


    换句话说,如果屏蔽了其特殊含义,会将引号里的所有字符,都作为一个字符串。




     


    反引号(`) (将括号内的当作命令来执行)


    用于设置系统命令的输出到变量。


    shell将反引号中的内容作为一个系统命令,并执行其内容




     


    反斜杠(\)


    如果一个字符有特殊含义,反斜线防止shell误解其含义,即屏蔽其特殊含义。


    下述字符包含有特殊意义:& * + ^ $ ` ” | ?


     






     


    脚本实例




    1. Hello.sh

      #!/bin/bash


      #This is the first script


      echo “Hello,World!”


      执行:


      chmod u+x Hello.sh


      ./Hello.sh



    2. var.sh

      #!/bin/bash


      echo $1


      echo $2


      echo $3


      echo $4


      echo $5


      echo $6


      echo $7


      echo $8


      echo $9


      echo $10





    3. #!/bin/bash

      echo –e “hostname\t `hostname`”


      echo –e “OScore\t `uname -r`”


      echo –e “CPUInfo\t `grep “model name” /proc/cpuinfo|awk –F: ‘{print $2}’`”


      ehco –e “CPUMHz\t `grep “MHz” /proc/cpuinfo | awk –F: ‘{print $2}’`”


      echo –e “MEMTotal\t `free | awk ‘$1=”Mem:”{print $2}’`”


      echo –e “DiskInfo\t `df | grep dev |awk ‘{print $1 $2}’`”




      回顾:


          脚本的结构与运行


          变量的类型及用法


              环境变量


              本地变量


              参数变量


              特殊变量


        变量赋值时的引用方法