shell 劝君更尽一杯酒

shell脚本运行方法:
1.chomd a+x myshell.sh
./myshell.sh
2. . myshell.sh
3. source myshell.sh
4. /bin/bash myshell.sh

shell 语法:
数据类型: 字符串 string
变量: 全局变量 --- 环境变量
局部变量 --- 本地变量
变量名 = 变量值 var=10
对比:
$变量名: 取变量的值
${变量名}: 取变量的值(更安全)
$(命令): 取命令的执行结果 ==命令
$((变量名)): 对变量执行算数运算
$[变量名]: 对变量执行算数运算

 导出 :export
 删除 :unset
 * ? [0123456789][0-9]
 命令代换:
            $() == ` `     var=`date`
  算数代换:
$(( )) == $[ ]
  转义字符:
  转特殊意    转本身意
                   --
  单引号: 括字符串 --- 不能展示变量
  双引号: 括字符串 --- 可以将变量展开   ---- 建议在取变量值时,都加““     尤其是在测试条件中

  控制语句: if else switch case for while ...
  	   条件判别表达式:真:0  假:1
   test   测试条件
   [空格  测试条件]
    整数判别符:    -eq 等于    -ne不等于   -gt大于   -lt小于  -ge大于等于  -le小于等于
    文件类型判别符:  -d 目录文件   -f 普通文件  -p 管道  -l 软连接   -c 字符设备 -b 块设备 -s socket
  字符串长度判断 :  -z 空字符串(长度为0)    -n 非空字符串(长度非0)
  字符串判等 :    = 相等   !=不等
  逻辑运算:     -a  ------- && 逻辑与
           -o -------- ||     逻辑或
            ! -------       逻辑非
  
   if语句:
if[判别条件];then
	执行内容
elif[判别条件];then
	执行内容
else
	执行内容
fi

    case分支语句:
case 变量 in
条件1.1|条件1.2|条件1.N)
	执行的语句;;
条件2.1|条件2.2|条件2.N)
	执行的语句;;
*)
	执行的语句;;
esac

      for循环语句
for TEST in `ls` ;do
       ls -1 $TEST
done

      while循环语句
count=1
read passwd
while [ $passwd != "itcast" -a $count -lt 3] ;do
         echo "Try again"
         count=${count+1]
         read passwd
done

【位置参数】:
	$0 :  类似于C中的argv[0] --- 描述可执行程序名
	$1-$N :  类似于C中的argv[1]-- argv[N]  命令行参数
	$# :    计算命令行参数的个数(不包含 argv[0])
	$*/$@: 表示所有的argv 命令行参数(不包含 argv[0])
	$$:    取出本进程的进程号
	shift 左移  命令参数


函数:
	函数名(){
		函数体
	}
		                      $1     $2      $3        $N
	调用函数传参:   函数名 参数1参数2 参数3....参数N
		函数外:$0 ---- 命令行参数的 argv[0] (shell脚本名称)
		             $1-$N   命令行参数的 argv[0]-argv[N]
		函数内:$0 ---- 命令行参数的 argv[0]  (shell脚本名称)
		             $1-$N   函数的参数1--参数N	
	
面向对象:  封装,继承,多态,重载。。。
框架:

正则表达式:
字符类使用的符号:
. 匹配一个字符 *匹配多个字符 [ ]匹配指定范围字符 -在[ ]中设定范围 ^匹配除该符号以后的其他字符,在[]内使用
数值类:
?:0-1 +:1-N *: 0-N {N} 前面单元的N次
{N,} :最少N次 {,M}:最多N次 {N,M}: 最少N次,最多M次
位置限定:
^:行首
$ : 行尾 grep ^([0-9]{1,3}.){3}[0-9]{1,3}$ 查询文件
<:单词的开头 <th then thread the
>:单词的结尾 <th fourth
:单词的开头、结尾  at  th | th | the
B:非单词的开头、结尾

基础正则:  grep  -E   
	使用  将 ? +{ } () |
扩展正则:   egrep
原文地址:https://www.cnblogs.com/justblue/p/13021771.html