zoukankan      html  css  js  c++  java
  • linux shell脚本快速入门

      本文里,通过对shell脚本里的变量申明、循环语句、条件判断、数据叠加的总结,能解决linux日常管理的大部分脚本

    1、变量的申明:

    是弱类型的语言,用name=xxx;取变量值的时候$name

     

    2、条件判断:

       if[ condition]; then

        operator;

       elif[ condition]; then

        operator;

       else

        operator;

       fi

    3、循环:

      while[ condition]

    #condition如果是用[]取代test,则有两个[]

      do

        operator;

      done;


     

      for((i=1;i<100;i++))

      do

         operator;

      done;


     

      for var in $(seq n)

    #or for var in `cat /etc/hosts`

      do

         operator;

      done;

    4、使用"[]"做判断条件注意点:

      1)、每个组件之间都要用空格隔开,如果用@代替空格,则表达式的判断为@[@str1@==@str2@]@;

      2)、用'=='进行判断时,两边的必须是字符串,所以必须用""括起来,如"$name" == "want",用$name == "want"出错,两边类型不同;

      3)、test判断:

        文件侦测: test -e filename

            test -f filename

            test -d direct

     

        文件权限判断:

            test -r filename

            test -w filename

            test -x filename

     

        文档时间:

            test file1 -nt file2;  判断file1是否比file2新

            test file1 -ot file2;

            test file1 -et file2;判断两个文件是否为同一个档案,可用在hard link的判断上

     

        两整数的判断:

            test n1 -eq n2;

            test n1 -ne n2;

            test n1 -gt n2;

            test n1 -lt n2;

            test n1 -ge n2;

            test n1 -le n2;

     

     

        字符串的判断:

          test -z string;字符串是否为空为0,如果string为空,则为true;

          test -n string;字符串是否非0

          test st1 = st2;

          test st1 != st2;

     

        多重判断:

          -a:and,例子test -r file -a -x file;

          -o:

          !:test ! -x file:判断file文件是否没有可执行权限

     

       4)、[]判断可以替代test进行判断,除了2)中的字符串相等要用==;

     

       5)、let "count=$count + 1";必须有"",否则出错

    5、字符运算

      i=2;

      i=$(($i*2));

    6、awk:

      awk '条件类型1{动作1} 条件类型2{动作2}' filename

       

      打印file中以分号分割的第三列大于10的第一列和第4

     

      cat file| awk 'BEGIN {FS=":"} $3 > 10 {print $1 "\t" $4}}

     

    7、简单的例子:

      看完了这些,你是否可以写出这样的脚本了呢:用递归的思想找出给定目录下文件大小超过给定大小文件的脚本,虽然可以用find命令操作,但是还是值得动手去做的!

  • 相关阅读:
    C#2.0技术探讨(1):匿名方法
    C#测试类的嵌套
    介绍几款博客发布工具,绝对好用
    HttpModule,对ASP.NET的事件处理进行过滤,干预
    C#中,控制台模式可以使用定时器吗?
    const常量和static静态只读变量有何区别
    C#设计模式(2):工厂模式
    ASP.NET 的数据绑定语法
    DataAdapter数据集DataSet和数据库的同步(2):使用DataAdapter来更新数据集
    TCP编程(5):服务器端 TcpListener
  • 原文地址:https://www.cnblogs.com/uttu/p/2909067.html
Copyright © 2011-2022 走看看