广州中小企业网站建设wordpress 主题教程 水煮鱼
一、概述
 shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核,还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。
  二、shell入门
 1.输出hello world
 touch helloworld.sh(创建一个bash文件)
 vim helloworld.sh(编辑文件)
 vim进去后编写:
 #!/bin/bash(指定解析器)
 echo "helloworld"
 脚本常用的执行方式
 第一种:sh或bush+绝对路径或者相对路径
 第二种:采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)
 (1)赋予脚本的+权限:chmod + x hellloworld.sh
 (2)执行脚本:
 ./helloworld.sh(相对路径)
 /home/cs/dateas/helloworld.sh(相对路径)
 第三种:在脚本的路径前加上. 或者source可以使脚本内容在当前shell里执行,而无需打开子shell,此时打印变量a是有值的,继承了,这就是为什么每次改完profile文件后都要source,而其他的当脚本内容解释,子shell关闭回到父shell中,不会继承,此时打印变量a是没有值的,一般用source的机会比较小
三、变量
 1.常用系统变量
 $HOME、$PWD、$SHELL、$USER等
 在datas文件家里查看系统变量的值:echo $HOME
 显示当前shell中所有变量:$ set
2.自定义变量
 (1)基本语法
 定义变量:变量名=变量值,注意=号前后不能有空格
 撤销变量:unset变量名
 声明静态变量:readonly变量,注意:不能unset
 (2)变量定义规则
 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写
 等号两侧不能有空格
 在bash中,,变量默认类型都是字符串类型,无法直接进行数值运算
 变量的值如果有空格,需要使用双引号或单引号括起来
 export 变量名:可以把变量提升为全局环境变量,可供其他shell程序使用
3.特殊变量
 (1)$n:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如$({10})
 #!/bin/bash
 echo $0
 echo $1
 echo $2
 ./cs.sh 1 2 :1对应$1参数,2对应$2参数
 (2)
 $#:获取所有输入参数个数,常用于循环
 $*:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
 $@:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
 $?:最后一次执行的命令返回状态,如果这个变量的值为0,证明上一个命令正确执行,如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确
四、运算符
 $((运算符))或者$[运算式]
 五、条件判断
 1.基本语法
 test condition
 [ condition ](注意condition前后要由空格)
 注意:条件非空即为true
 2.常用判断条件
 (1)两个整数之间的比较:
 -eq 等于(equal)        -ne 不等于(not equal)
 -lt 小于(less than)        -le 小于等于(less equal)
 -gt (greater than)        -ge 大于等于(greater equal)
 (2)按照文件权限进行判断
 -r:有读的权限(read)
 -w:有写的权限(write)
 -x:有执行的权限(execute)
 (3)按照文件类型进行判断
 -e:文件存在(existence)
 -f:文件存在并且是一个常规的文件(file)
 -d:文件存在并且是一个目录(directory)
六、流程控制
 1.基本语法
 (1)单分支
 if [条件判断式];then
 程序
 fi
 或者
 if [条件判断式]
 then
 程序
 fi
 (2)多分支
 if [条件判断式]
 than
 程序
 eles
 程序
 fi
 注意事项:
 (1)[条件判断式],中括号和条件判断式之间必须有空格
 (2)if后要有空格
