xiaobater 2020-05-07
shell脚本为文本文件
文件通常以.sh结尾
第一行:指定用哪个程序编译执行
* # ! /bin/bash
* # ! /bin/sh
注释:#
变量名:以字母或下划线开头,大小写敏感
变量
* 本地变量
* 环境变量(全局变量)
* 大写
* export LANG
* 赋值
* 等号两边不能有空格
* 给变量赋空值,在等号后加换行符
* 显示变量的值:echo$var 或 echo ${var}
* 清除变量:unset var
* 显示所有的变量:set
* 位置参量:
* 从命令行接受参数
* 脚本后每个用空格隔开的变量都为字符参量
* 参量中有空格需加引号
* \(x表示第x个参数 * 当x大于9,要写成\){x}
任何命令进行时都将返回一个退出状态
查看命令:echo %?
shell脚本返回最后一个命令的返回码
返回码:exit N
* 0,成功
* 0,出错
数组
* 定义:arr=(v1,v2,…)
* 引用
* 引用变量:\({arr[0]} * 数组个数:\){#arr[]}
* 所有元素:${arr[]}
* 赋值:arr[0]=hah
时间
* 显示
* date +%Y/%m/%d
* date +%H:%M
* 今天:date +%Y/%m/%d
* 昨天:date --date=‘1 days ago’ +%Y/%m/%d
* 前天:date --date=‘2 days ago’ + +%Y/%m/%d
判断
* 判断是否为空:[var] * if [表达式]; then 语句 elif 语句 else 语句 fi * for var in 1 2 3 4 5 do 语句 done * for ((i=0;i<${num};i=i+1)) do 语句 done * while [condition] do 语句 done * until [condition] do 语句 done
ls ./*.txt
| while read line do echo $line done