shell程式就是放在檔案的一系列linux命令和應用程式
shell也就是linux下的指令碼語言
1.shell指令碼執行的必須條件
(1)!#/bin/bash:必須以此作為開頭
(3)一般以.sh結尾
2.shell的兩種執行方式:
(1)./+可執行的shell指令碼
(2)bash+shell指令碼(**
**)2.關於shell的一些關鍵字
(1)echo:列印字串
(2)read:標準輸入
(3)exec:執行另乙個shell指令碼
(4)text:主要進行字串的比較熟悉比較邏輯測試以及檔案操作
(5)#:代表注釋
3.對於關鍵字的例子:
(1)read和echo:
這裡變數區別c語言的是不用定義直接能使用read+變數名就是乙個便準輸入
read ±p +提示語句(字串)+變數名
read可以跟多個變數名加空格空開就行,(變數名與提示語句的引號也要空開)
這裡的echo後邊要先空格再加加字串
(2)關於運算shell指令碼只支援整形
例如:echo"ab= $ (($ a$b))"
注意這裡必須使用雙括號
取值一定要加 $符號
(3)&&和||和的用法
cmd1&&cmd2:當cmd1執行成功則執行cmd2否則不執行cmd2
cmd1||cmd2:cmd1執行失敗就執行cmd2否則就不執行
:中括號之間的算數比較不是用大於小於等於號
而是-eq:判斷代表兩值相等,相等返回真
-lt:判斷是否是小於
-ge:判斷大於等於
-le:判斷小於等於
中括號中的字串的比較:
=:判斷兩字串是否相等
!=:判斷兩字串是否不等
-n:判斷字串長度是否大於0(注意下圖-n和-z的用法)
-z:判斷字串是否等於0
中括號中的邏輯語句 :
-a代表且
-o代表或
!代表非
text和中括號的引數類似
這裡用等號判斷兩字串是否相等的時候等號兩邊必須有空格
只不過把中括號換成test
比如if test $a -ge $b
text還能對檔案操作:
以對-e進行操作
預設查詢的是使用者家目錄
可以先進入乙個目錄再進行查詢
目錄也是檔案也可進行查詢
(3)if語句的應用
**if+條件判斷+;+then
判斷成功要進行的**
+exit 0
else+條件判斷+;+then
判斷成功要做的事
+exit 0
+fi**
這裡c語言裡邊的else if 在shell事elif
然後else或者elif後邊跟的和if一樣
注意項:**if與條件判斷要有空格
中括號要與其中的引數有空格
**(4)case語句
介紹case之前介紹三個預設變數
$ 0~$ n:表示shell指令碼的引數,$s0代表被執行檔案的檔名
$#:代表最後乙個引數的標號
s@:全體引數集合
(補充 :./.s**件+引數1+引數2.。。。。)
例子:
#!
/bin/bash
echo $0
echo $1
echo $2
echo $#
echo $@
命令:master@ubuntu:~$ bash a.sh a b執行結果:
```c
a.shab
2a b
case語句:
例子:
#!
/bin/bash
case $1 in
"a") echo aaa
;;"b"
) echo bbb
;;"c"
) echo ccc;
esac
輸入:master@ubuntu:~$ bash a.sh c
輸出:ccc
注意這裡兩個分號
還有結尾要有反著寫的case
(5)函式:
函式在shell指令碼中也需要呼叫
function(可加可不加)+函式名(){};
函式也可以傳參但是傳參是呼叫的時候在函式名後邊加引數而不是寫在函式裡邊而且函式呼叫不用加()
例子:
上圖輸入:master@ubuntu:
~$ bash a.sh a b
輸出:func
ab
(6)迴圈
while迴圈:
while迴圈模式:
while+判斷式
do若干個命令2
done
while迴圈和until迴圈兩個模式一樣但是while迴圈為真時迴圈繼續,until迴圈是為假時候迴圈繼續
for迴圈:
第一種for迴圈:
for+變數+in+變數的取值+迴圈體+done
第二種和c語言差不多但是for後邊的小括號有兩個後邊加done
以下就是三種f迴圈語句的用法;
這裡注意變數賦值時不需要$值但是當要用到變數的值的時候需要加 $值
還有就是for迴圈裡邊有兩個括號
兩數相加要加倆括號前面還要有 $
Linux下的shell程式設計
前提 shell環境pdksh和bash ubuntu下預設的shell環境是bash 語法篇 一 變數 1.變數分為三種型別 環境變數 內部變數和使用者變數 其中環境變數和內部變數不需要使用者定義,可以直接使用。環境變數 由系統定義,使用者不需要定義但可以改變變數的值。內部變數 由系統提供的一種特...
linux下的shell指令碼程式設計
程式語言分為兩種,一種是整個 進行編譯然後進行執行 另一種就是shell這種通過直譯器一行一行轉換為 linux常用的一些命令此處不再贅述 直接進入主題 我們來寫第乙個程式 hello world bin bash 上面的 告訴了直譯器採用bash直譯器來執行 echo hello world ec...
Linux下shell指令碼程式設計
shell程式設計小練習 在linux作業系統中,如果插入乙個usb裝置,需要用mount掛載命令才能實現這個裝置的載入,下面寫乙個usb裝置掛載與檔案複製的shell程式,程式需求 1 執行時,提示使用者輸入 y 或者 y 確定是否掛載usb裝置,u盤檔案 dev sdc1 if ans y o ...