linux Shell学习笔记第二天

所属分类: 脚本专栏 / 其它 阅读数: 510
收藏 0 赞 0 分享

变量

  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}'`”


    回顾:

        脚本的结构与运行

        变量的类型及用法

            环境变量

            本地变量

            参数变量

            特殊变量

    变量赋值时的引用方法

更多精彩内容其他人还在看

linux Shell学习笔记第五天

最近看Shell有点头晕了,再看一天就要忙公司的squid问题了。 现在双线机房即将成为单线机房。
收藏 0 赞 0 分享

linux Shell学习笔记最后一节,温故与知新

linux Shell学习笔记最后一节,这节是对前面章节的小结,学习shell编程的朋友可以参考下。
收藏 0 赞 0 分享

一个不错的shell 脚本教程 入门级

一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂
收藏 0 赞 0 分享

脚本发生错误怎么解决 当前页的脚本发生错误的解决方法小结

我们经常在访问网页的时候,右下角经常出现脚本错误提示,记得一家国外的银行因为这个原因导致业务受到很大的影响,如果放到网站上对用户也容易产生一些错觉,网站有问题,不安全等等疑问
收藏 0 赞 0 分享

Perl 与 Python 之间的一些异同整理

Python 和 Perl 作为主流脚本语言中的成员,在语法等方面有很多相似之处,却又存在一定的差异。本文通过对这两种语言的比较,从而使得相关开发人员可以更深刻的了解和掌握这两种语言
收藏 0 赞 0 分享

两个很详细的shell 实例代码

现在我们来讨论编写一个脚本的一般步骤。任何优秀的脚本都应该具有帮助和输入参数。并且写一个伪脚本(framework.sh),该脚本包含了大多数脚本都需要的框架结构,是一个非常不错的主意
收藏 0 赞 0 分享

脚本与批处理合二为一

我们现在可以用JScript或VBScript来完成更复杂的工作,配合WMI,可以说是无所不能
收藏 0 赞 0 分享

利用命令进行简单的增量文件夹备份(win/linux)

这两天突然看到一个需求点,需要实现增量备份的功能,找了一些资料,记录一下如下命令,该命令可以利用命令行进行简单的增量备份功能
收藏 0 赞 0 分享

Swift语言与Applescript的区别?AppleScript的发展状况?

这篇文章主要介绍了Swift语言与Applescript的区别?AppleScript的发展状况? ,需要的朋友可以参考下
收藏 0 赞 0 分享

git eclipse 插件的安装

通常我们开发项目用ecliipse的比较多。所以在这把eclipse的Git插件安装和使用,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多