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                                                        //查看啟動信息
