shell脚本顺序执行
‘壹’ 执行shell脚本的方式主要是什么
(1)输入定向到Shell脚本
$ bash < 脚本名
(2)以脚本名作为参数
$ bash 脚本名 〔参数〕
(3)将Shell脚本的权限设置为可执行,然后在提示符下直接执行它。
$ chmod a+x 脚本名
$ PATH=&PATH:.
$ 脚本名
‘贰’ linux中.sh脚本文件中命令的执行顺序
每条命令后如果不加&的话就是依次一行一行的顺序执行,只有前面一行执行完成后再执行下一行,如果希望多个命令在一个shell内执行可在一行写入多条命令,用&&符号间隔
‘叁’ Shell基础脚本-运算符优先级
在脚本中,运算执行的顺序被称为优先级: 高优先级的操作会比低优先级的操作先执行
   表-1. 运算符优先级(从高到低)
                                                                                  
 实际上,你只需要记住以下规则就可以了:
  
 现在,让我们利用运算符优先级的知识来分析一下Fedora Core Linux中的/etc/init.d/functions文件。
  
 为了避免在复杂比较运算中的错误,可以把运算分散到几个括号结构中
‘肆’ shell脚本书写方法
在shell学习过程中,感觉挺有用的一份比较,略整理分享给大家。
  
 首先,shell的作用
用户的登陆shell 登陆后默认的shell程序是: /bin/bash
  
 不同的shell内部指令,运行环境会有所区别
  
 常见的shell有
  
 /bin/sh
  
 /bin/bash
  
 /sbin/nologin
  
 1.编写脚本代码:
  
 使用vi编辑器,每行一条Linux命令,按照顺序执行
  
 2.然后赋予脚本文件可执行的属性
  
 3.执行脚本文件的三种方法
  
 ./chao.sh
  
 sh /chao.sh
  
 source /chao.sh
  
 更完善的脚本构成
    
 注释信息
  
 可执行语句
重定向操作
  
  类型 操作符 用途
  
 重定向输入 < 从指定文件读取而不是从键盘输入
  
 重定向输出 > 将输出文件保存到指定文件(覆盖原有内容)
  
  >> 将输出文件保存到指定文件(覆盖原有内容)
  
 标准错误输出 2> 将错误信息保存到指定的文件(覆盖原有内容)
  
  2>> 将错误信息保存到指定的文件
  
 混合输出 &> 将标准输出,标准错误的内容保存到同一文件中
  
 管道操作符号“|”
  
 将左侧的命令输出结果,作为右侧命令的处理对象
shell变量的作用
  
 为灵活管理Linux系统提供的特定参数,有两层意思
  
 变量名:使用固定的名称,由系统预设或用户定义
  
 变量值: 能够根据用户设置,系统环境的变化而变化
  
 变量的类型
  
 自定义变量:由用户自己定义,修改和使用
  
 环境变量: 由系统维护,用于设置工作环境
  
 位置变量: 通过命令行给脚本程序传递参数
  
 预定义变量:BASH中内置的一类变量,不能直接修改
  
 定义一个新的变量
  
 格式: 变量名=变量值
  
 变量名以字母或下划线开头,区分大小写,建议全大写
  
 查看变量的值: echo $变量名
  
 赋值时使用引号:
  
 双引号:允许使用$符引用其他变量值
  
 单引号: 禁止引用其他变量值,$视为普通字符
  
 反撇号:命令替换,提取命令执行后的输出结果
  
 将键盘输入内容为变量赋值
  
 格式: read [-p "提示信息"] 变量名
  
 设置变量的作用范围
  
 export 变量名
  
 export 变量名=变量值
  
 两种格式可以混合使用
  
 整数变量的运算:
  
 expr 变量1 运算符 变量2 [运算符 变量3]
  
 常见的运算符
  
 加法运算符 +
  
 减法运算符: -
  
 乘法运算符:\*
  
 除法运算符: /
  
 取余运算:%
  
 整数变量的运算(2)
  
 ((变量=变量运算符变量));
  
 等号后面的变量可以是具体数值
  
 例子:
  
 ((a=a+3));
  
 环境变量:
  
 由系统提前创建,用来设置用户的工作环境
  
 配置文件: /etc/profile ~/.bash_profile
  
 常见环境变量的举例
位置变量:
  
 表示为$n, n为1~9之间的数字
预定义变量: 
  
 /etc/passwd /etc/shadow
  
 例如一些服务的内置用户名或密码
  
 如apache的启动用户就是预定义变量
  
 条件测试操作
  
 测试特定的 表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值
  
 格式 : test 条件表达式
应用实例: 
test -z 进行测试的时候 字符串长度为0的时候 结果才返回1
  
  如果变量数值为0 返回0
  
 条件测试操作
  
 [ 操作符 文件或目录]
[5] 部分是判断表达式,-d表示判断是否是目录
  
 &&是”逻辑与“操作符,只有&&前面的判断成立,后面的语句才会执行
  
 -b的意思是判断 后面的路径是否是一个目录
  
 echo $? 表示对刚刚执行的表达式进行判断
  
 0表示成立,1表示不成立
  
 -e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]
  
 -d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
  
 -f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
  
 -L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
  
 -r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
  
 -w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
  
 -x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
  
 filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
  
 filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
  
 字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
  
 -z string 如果 string长度为零,则为真 [ -z "$myvar" ]
  
 -n string 如果 string长度非零,则为真 [ -n "$myvar" ]
  
 string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
  
 string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
  
 算术比较运算符
  
 num1-eq num2 等于 [ 3 -eq $mynum ]
  
 num1-ne num2 不等于 [ 3 -ne $mynum ]
  
 num1-lt num2 小于 [ 3 -lt $mynum ]
  
 num1-le num2 小于或等于 [ 3 -le $mynum ]
  
 num1-gt num2 大于 [ 3 -gt $mynum ]
  
 num1-ge num2 大于或等于 [ 3 -ge $mynum ]
  
 整数值比较
  
 格式: [ 整数1 操作符 整数2 ]
字符串比较
  
 格式1: [ 字符串1 = 字符串2 ]
  
  [ 字符串1 != 字符串2 ]
  
 格式2: [ -z 字符串 ]
逻辑测试:
  
 格式1: [ 表达式1 ] 操作符 [ 表达式2 ]
  
 格式2: 命令1 操作符 命令2
  
 if语句的结构
while语句的语法结构
‘伍’ 怎样将多条linux命令写成shell脚本顺序执行
kill -9 `ps -ef |grep weblogic |awk '{print $2}'`              //强制杀掉该进程
cd /home/bea/user_project/domain/oms_domain/     //进入weblogic域绝对路径
mv tbp_config `date +%F`tbp_config                          //将老的工程项目修改为yyyy-mm-ddtbp_config
cd apps                                                                     //进入apps目录
mv TBPWeb `date +%F`TBPWeb                               //将老的工程项目修改为yyyy-mm-ddTBPWeb
unzip Webconnect.zip                                               //解压新项目压缩包
mv Webconnect/ TBPWeb/                                       //将新项目名称修改为TBPWeb
cd ..                                                                          //回到上级目录
unzip tbp_config.zip                                                  //解压新项目压缩包
nohup ./startWeblogic.sh &&                                    //后台启动weblogic
tail -f nohup.out                                                        //查看启动信息
