zoukankan      html  css  js  c++  java
  • Linux shell脚本编程

    shell脚本

    shell为非类型的解释型语言,即给变量赋值时就已为其定义。

    #!/bin/bash  //环境说明
    - chmod o+x 文件名  //命令行运行
    
    • /bin/bash 文件名 //同上作用

    • $变量名 //引用变量

    • $0 //当前程序的名称(系统早先定义)

    • $n //第n个参数

    • $* //全部参数

    • $PWD //当前所在的目录

    • -f //文件是否存在

    • -d //目录是否存在

    • -s //检查文件是否为空(比较成功时表示含有数据;通常在删除文件时使用)

    • -nt;-ot //比较一个文件和另一个文件的新旧

    • -x;-w; //执行权限和写入权限

    • -eq(等于)-ne(不等于)-lt(小于)-gt(大于)-le(小于等于)-o(或,单方面成立)-a(与,多方面成立)-z(空字符串)

    • (())[[]] //双圆括号表示数学表达式,双方括号表示高级字符串处理函数 //通常用于算术判断或计算

    • if开头 fi结尾 if ();then(if语句只执行返回值为成功返回(0)的命令 而跳过错误命令)(可以使用布尔逻辑来执行if [] || [];if [] && [])

    • elif

    • case命令:eg:
      case var in pattern1 | pattern2) command1;;
      pattern3) command2;;
      *) default command3;;
      esac

    • 括号中开头和结尾要空格

    • while ();do
      done

    • for var in list
      do
      commands
      done

    • until语句 同while 但是相反 知道为0停止

    • C式for循环:eg:
      for(( i=1; i<10; i++ ))
      注意:变量的赋值可以包含空格;变量不以美元符号做前缀;迭代处理式中不含expr式

    • if和while后要空格

    • 反引号的内容当成命令来执行

    • date +%y%m%d //日期按年月日格式输出

    • wc命令对数据中的文本计数,默认情况下生成三个值:文本行数,单词数,字节数

    • 退出脚本时会返回一个0到255的整数值 可以使用$?来捕捉这个值 判断脚本是否执行成功(返回0一般表示执行成功)(可以自己设置脚本退出的返回代码在0到255之间的一个数;eg:exit 5;没设置时 1为未知错误,2为误用shell命令,126为用户无权限执行该命令,127为没有找到命令)

    • 可以通过暂时更改环境变量中的IFS变量来使脚本忽略字段分隔符(空格,制表,分隔)eg: IFS = $'/n'

    重定向:

    • 输入重定向:eg:command < inputfile (箭头方向为数据流方向)
    • 内置输入重定向:eg:
      $wc << EOF
      test.txt
      EOF
      (EOF为数据标记,开始和结尾处必须相同)
    • expr命令可以处理等式:eg
      $expr 1+5
      也可以使用$[1 + 5]
    • bc命令可以调用bash的计算器 需要离开时输入quit(scale设置小数位大小 同时可以在脚本中使用bc命令 eg:
    variable`echo "options;express | bc"`
    
    

    bc中创建的变量只在计算器中有效,在shell脚本中无效

  • 相关阅读:
    ASP.NET Web应用程序与ASP.NET Web服务应用程序的区别
    【你必须知道的.NET】:【大话String】
    获取SQLServer数据库中所有表
    Window_Open详解收藏
    关于数据实现批量删除
    asp.net mvc 图形解析说明原理
    【转载】:C#语言
    泛型参数的约束
    SQL 常用函数小结
    [转载]:C#两种不同的存储过程调用方法
  • 原文地址:https://www.cnblogs.com/mercuialC/p/9032018.html
Copyright © 2011-2022 走看看