標籤:shell linux 指令碼 入門
環境變數
一些命令
shell指令碼中經常出現各種環境變數,因此要寫指令碼,必須先來瞭解環境變數.常見的處理環境變數的命令,列舉在下面
- set 用來顯示本地變數
- env 用來顯示環境變數
- export 用來顯示和設定環境變數
- source 後面跟一個檔案,可以直接執行檔案裡的指令碼命令並更新
常見的環境變數
相當於C語言中, main函數的argv數組, 這裡用 $num 表示,其中 num 是指代一個數字. 見下面的程式執行個體
# foot.sh#!/bin/shecho "#0 $0"echo "#1 $1"echo "#2 $2"echo "#3 $3"echo "#4 $4"echo "#5 $5"echo "#10 ${10}"# 注意這裡的花括弧
列舉一些常見的變數, 可以通過 echo 直接查看
PWD當前路徑, bash 的 pwd 命令即是輸出該路徑OLDPWD前一個目錄PATHshell的命令路徑HOME使用者的家目錄SHELL當前的shellUSER使用者名稱UID使用者 id 可以參考 /etc/passwdPPID建立當前進程的進程號,即父進程號PS1提示符變數
引用
一般字串可以不用引號,加了引號(單引號或者雙引號,都是為了屏蔽特殊字元的特殊意義,如星號等)
"1 is $1" |
雙引號 |
引用除了貨幣符號($) 反引號(``) 反斜線( \ )的字串,可以輸出單引號 |
‘1 is $1‘ |
單引號 |
單引號裡面的字串會原樣輸出,包括雙引號,但是不能輸出單引號 |
varA=`pwd` |
反引號 |
講反引號裡面的內容解釋為 shell 命令 |
注: ${pwd} 和 `pwd` 的意思是一樣的, 返回的結果是一個字串,而且會刪除分行符號
比較
把運算式放在中括弧裡,如 ["$num1" -eq 20] 條件滿足就返回 0
比較子
-eq |
euqal |
== |
-ge |
greater or equal |
>= |
-gt |
greater |
> |
-le |
less or equal |
<= |
-lt |
less than |
< |
-ne |
not equal |
!= |
檔案操作符
-d file |
directory |
是否為 目錄 |
-e file |
exist |
是否 存在 |
-f file |
file |
是否為 普通檔案 |
-r file |
readable |
是否 可讀 |
-s file |
|
檔案長度是否不為零 |
-w file |
writable |
是否 可寫 |
-x file |
executive |
是否 可執行 |
-L file |
linkable |
是否 是符號化連結 |
邏輯運算子
!expression |
邏輯非 |
expression1 -a expression2 |
邏輯與 and |
expression1 -o expression2 |
邏輯或 or |
Linux shell指令碼編程入門 (一)