shell 與makefile有關常用總結

shell腳本的開頭必須加#! /bin/bash
test:
  對文件測試
  - d 目錄- s 文件長度大於0、非空
  - f 正規文件- w 可寫
  - L 符號連接- u 文件有s u i d位設置
  - r 可讀- x 可執行
  例子:[-d lj] //lj目錄存在嗎? 存在則爲真
 
  邏輯測試
  -a (與) -o (或)

  字符串測試
  [string1 operator string2]
  = 兩個字符串相等。
  != 兩個字符串不等。
  -z 空串。
  -n 非空串。

  進行字符串比較時 變量必須用雙引號...在變量賦值時,變量沒有規定必須要雙引號
  如:["$PATH1" = "$PATH2"]
 
  測試數字
  -eq 數值相等。
  -ne 數值不相等。
  -gt 第一個數大於第二個數。
  -lt 第一個數小於第二個數。
  -le 第一個數小於等於第二個數。
  -ge 第一個數大於等於第二個數

if 條件判斷
if 條件1
then 命令1
elif 條件2
then 命令2
else 命令3
if
case
case 值 in
模式1) 命令1
...
;; //兩個分號
模式2)命令2
...
;; //兩個分號
esac
for
    for 變量名i n列表
    do
命令1
命令2…
    done
雙引號:
   對shell, 對已經賦字符串值的變量,有沒有雙引號都是一樣的值.
   如: 
   #MYDATE="date"
   #echo $MYDATE
   date    //輸出也是data, 但在條件測試裏,必須要加雙引號.
單引號:
   與雙引號一樣. 但如果屏蔽了它特殊的含義,將會單引號被輸出...
   如:
   #GIRL='beauty'   //如何echo $GIRL 則輸出的是 beauty
   #echo "she is '$GIRL'" //裏面的單引號被輸出
   she is 'beauty' 
反引號:
   shell將反引號中的內容作爲一個系統命令,並執行其內容
   如:
   $echo `data`
   Sun May 16 16:40:19 GMT 1999
   
常用嵌入標準命令
空,永遠返回爲t r u e
. 從當前shell中執行操作
break 退出for、while、until或case語句
cd 改變到當前目錄
continue 執行循環的下一步
exit 退出當前shell
pwd       顯示當前目錄
位置參數: 如果要訪問超過$9參數,請用shift
   $0    $1   $2  $3   $4   $5   $6   $7   $8   $9
  腳本名字 Did   You See The   Full Moon

特殊變量參數
$# 傳遞到腳本的參數個數
$* 以一個單字符串顯示所有向腳本傳遞的參數。與位置變量不同,此選項參數可超 過9個
$$ 腳本運行的當前進程I D號
$! 後臺運行的最後一個進程的進程I D號
$@ 與$ #相同,但是使用時加引號,並在引號中返回每個參數
$- 顯示s h e l l使用的當前選項,與s e t命令功能相同
$? 顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章