1建立:
使用 vim 命令建立以.sh結尾的 指令碼檔案
#!/bin/bash——第一行寫上
2執行:
注意:如不給可執行許可權,也可執行,就要在指令碼前使用命令sh執行
以後臺的方式執行:可在乙個指令碼中執行另乙個shell指令碼
如在yourshell.sh中寫入:
./myshell.sh &&
3變數
系統變數
如home path user等
set指令可用檢視全部
引用變數:$變數
輸出:echo 「內容」
4定義變數的規則
變數名不能以數字開頭
等號兩側不能有空格
變數名一般習慣大寫
5將命令的返回值賦給變數
a=`ls -la /home` 反引號,執行裡面的命令,並把結果返回a
a=$(ls -la /home)等價反引號
6設定環境變數
在/etc/profile檔案定義環境變數
export 變數名=變數值——將shell變數設定為環境變數
需要使用source /ect/profile使環境變數生效
7位置引數變數
如:./myshell.sh 100 200——在shell指令碼內部可以獲取到這兩個引數
$n——$0代表引數本身,$1-$9代表1至9個引數,10以上的引數要用{}包,如$
$*——代表命令列中的所有引數,把所有引數當成乙個整體
$@——代表命令列中的所有引數,不過把每個引數分別對待
$#——命令列中的引數個數
8預定義變數shell設計者事先定義好的變數,可直接在shell中使用
$$——當前程序的程序號
$!——後台執行的最後乙個程序的程序號
$?——最後一次執行命令的返回狀態(0即執行正確,非0則執行不正確,具體為哪個值由命令決定)
9運算子
基本語法
1. $((表示式)) 或 $[表示式]
2. expr m + n——注意,運算子之間要有空格,為一命令,需要用反引號括起來``
3. expr m - n
4. \*,/,%——乘號需要反斜槓
10條件判斷
基本語法:
[ condition ]——注意:condition前後要有空格
非空則返回true,可以使用$?驗證(返回0為true)
#判斷字串是否相等
if [ "ok" = "ok" ]
then
echo "equal"
fi#判斷數字大小
if [ 23 -gt 22 ]
then
echo "大於"
fi#判斷檔案時=是否存在
if [ -e /root/shell/a.txt ]
then
echo "存在"
fi
11流程控制if [ condition ];then
程式fi或者
if [condition]
then
程式elif [ condition ]
then
程式fi推薦使用第二種
case $變數名 in
"值1")
如果變數等於值1,則執行程式1
;;"值2")
如果變數等於值2,則執行程式2
;;···省略其他分支···
*)如果變數的值都不是以上的值,則執行此程式
;;esac
基本語法1
#這裡可以看出$*和$@的區別
for 變數 in 值1 值2 值3···
do程式
done
基本語法2
for((初始值;迴圈控制變數;變數變化))
do程式
done
基本語法1
while [ condition ]
do程式
done
12獲取控制台輸入
read (選項) (引數)
選項:
-p——指定讀取值時的提示符
-t——指定讀取值時的等待時間,超時輸入將不等待
13系統函式(部分)basename /home/aaa/a.txt //輸出a.txt
basename /home/aaa/a.txt .txt //輸出a
dirname /home/aaa/a.txt //輸出/home/aaa
14自定義函式基本語法(中的可不寫)
[function] funname[()]
呼叫直接寫函式名 function[值]
#乙個函式
function getsum()
#從鍵盤快取讀入
read -p 請輸入第乙個數 n1
read -p 請輸入第乙個數 n2
#呼叫getsum $n1 $n2
Shell 程式設計基礎
2 shell 程式設計基礎 shell 簡介認識後台程式 bash 程式設計熟悉 linux 系統下的編輯環境 熟悉linux 下的各種 shell 熟練進行 shell 程式設計熟悉 vi基本操作 熟悉emacs 的基本操作 比較不同 shell 的區別編寫乙個測試伺服器是否連通的 shell ...
shell程式設計基礎
1.熟悉shell 1.1 基本語法 bin bash shell必須以上面所示的開頭,以 開頭的語句表示注釋。1.2 新增可執行許可權 chmod u x 檔名 1.3 建立簡單的shell bin bash echo n hell user,today is date echo good luc...
shell 程式設計基礎
1.基礎正規表示式 aa 表示至少包含乙個a的行,a 匹配所有內容 匹配任意乙個字元,精準匹配 grep 提取文字中的字元 grep v root 取反不包括root的行 2.cut 命令 f第幾列 d分隔符 3.printf ni輸出n個整數 ns n個字元 m.nf m.nprintf s t ...