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脚本中无效

猜你喜欢

转载自www.cnblogs.com/mercuialC/p/9032018.html