shell
指令碼課程目標:
熟悉shell
指令碼的編寫規則
看懂複雜的
shell
指令碼重點難點:
自我查詢
shell
指令碼的高階應用#!
指定sh
解釋程式#;
注釋關於空格,
= 不加空格,運算子要加空格,如果記不住就改為:
=不加空格,其它都加。
使用者自定義變數
變數型別只支援字串,不支援整形,字元,浮點;
等號前後不要有空格
一般變數命名用全大寫
unset
命令刪除變數賦值
readonly
標定唯讀變數
export
為指定global
變數shell
的算術運算:
m=$[m + 1];m=`expt$m+1`;let m= m+1;m=$((m+1))
關於算數優先順序,如何考慮!
預定義變數
$0 與鍵入的命令列一樣,包含指令碼檔名
$1,$2,…,$9
分別寶行第乙個到第九個命令列引數
$# 命令列引數的個數
$@ 所有命令列引數
$? 前乙個命令的退出狀態
$* 所有命令列引數
$$ 正在執行的程序id號
環境變數
home
:當前使用者的主目錄
path
:shell
搜尋路徑
term
:終端程式名稱
uid
當前使用者的識別字,取值是由數字構成的字串。
pwd
當前工作目錄的絕對路徑名,該變數的取值隨
cd命令的使用而變化
ps1
主提示符,在特權使用者下,預設的主提示符是
#,在普通使用者下,預設的主提示符是$。
ps2
在shell
接收使用者輸入命令的過程中,如果使用者在輸入行的末尾輸入
」\」然後回車,或者當使用者按回車鍵
shell
判斷出使用者輸入的命令沒有結束時,就顯示這個輔助提示符,提示使用者繼續輸入命令的其餘部分,預設的輔助提示符是
>
shell
語句shell
內部命令
echo
exec
exit
read
從標準輸入讀取一行並且賦值給後面變數
read var
read var1 var2 var3
注意:當讀取數量和變數數量不一致的時候
expr
常見的算術運算+,
-,\*,
/,%注意:運算子左右兩邊都需要有空格,否則會視為字串連線
test
測試結果也常常用來作為判斷條件及結果
test 「$anser」 = 「yes」
test $num –eq 18
test –d temp
可以用代替test
,但需要左右留乙個空格,比如
[「$anser」 = 「yes」 ]
if[「$anser」 = 「yes」]
字串測試
s1 = s2
s1 ! = s2
-z s1
測試字串
s1長度是否為
0 -n s2
測試字串
s1 長度是否不為0
2) 數值測試
-eq
等於則為真
-ne
不等於則為真
-gt大於則為真
-ge
大於等於則為真
-lt小於則為真
-le小於等於則為真
3) 檔案測試(加粗為重要)
-e
檔名
如果檔案存在則為真
-r 檔名如果檔案存在且可讀則為真
-w 檔名
如果檔案存在且可寫則為真
-x 檔名
如果檔案存在且可執行則為真
-s 檔名
如果檔案存在且至少有乙個字元則為真
-d
檔名
如果檔案存在且為目錄則為真
-f 檔名
如果檔案存在且為普通檔案則為真
-c 檔名如果檔案存在且為字元型特殊檔案則為真
-b 檔名
如果檔案存在且為快特殊檔案則為真
shell
結構性語句
條件:if…then…fi
if[exp]
then [command]
fi if[exp]
then [command]
else [command]
ficase …esac
case [var] in
[param1])
[command]
… ;;
[param2])
[command]
… ;;
[paramn])
[command]
… ;;
esac
注意:var只能是字串型變數。
迴圈:for…do…done
for[var] in [list]
do [command]
done
while…do…done
while[exp]
do [command]
done
until…do…done
until[exp]
do [command]
done
break,continue
shell
函式
定義格式
function_name()
2)function function_name()
呼叫函式
[var]=`function_name[arg1,arg2…]`
echo $?
區分差別
Windows嵌入式開發系列課程
windows嵌入式開發系列課程 1 windows ce系統定製開發入門 簡單介紹windows ce作業系統的一些概況 windows ce驅動和應用程式開發工具介紹 windows ce體系結構和windows ce編譯的過程。windows嵌入式開發系列課程 2 使用embeded visu...
曉莊嵌入式開發課程日誌
學習日誌 姓名 陸旋 日期 2018年9月10日 今日學習任務 今日任務完成情況 詳細說明本日任務是否按計畫完成,開發的 量 本日任務按計畫完成,今日開發 量 約200行 今日開發中出現的問題彙總 指標中 i i的具體計算先後順序 結構體中的長度計算問題。今日未解決問題 無今日開發收穫 了解了vmw...
曉莊嵌入式開發課程日誌
學習日誌 姓名 陸旋 日期 2018年9月11日 今日學習任務 學習了解資料結構,棧的特點 屬性 完成功能函式 初始化棧,進棧,出棧,判斷棧是否為空,獲取棧頂元素,清空棧 今日任務完成情況 詳細說明本日任務是否按計畫完成,開發的 量 本日任務按計畫完成,今日開發 量 約250行 今日開發中出現的問題...