linux下的shell编程
shell程序就是放在文件的一系列Linux命令和應(yīng)用程序
shell也就是linux下的腳本語言
1.shell腳本執(zhí)行的必須條件
(1)!#/bin/bash:必須以此作為開頭
(3)一般以.sh結(jié)尾
2.shell的兩種執(zhí)行方式:
(1)./+可執(zhí)行的shell腳本
(2)bash+shell腳本(**
**)
2.關(guān)于shell的一些關(guān)鍵字
(1)echo:打印字符串
(2)read:標(biāo)準(zhǔn)輸入
(3)exec:執(zhí)行另一個shell腳本
(4)text:主要進行字符串的比較熟悉比較邏輯測試以及文件操作
(5)#:代表注釋
3.對于關(guān)鍵字的例子:
(1)read和echo:
這里變量區(qū)別C語言的是不用定義直接能使用read+變量名就是一個便準(zhǔn)輸入
read ±p +提示語句(字符串)+變量名
read可以跟多個變量名加空格空開就行,(變量名與提示語句的引號也要空開)
這里的echo后邊要先空格再加加字符串
(2)關(guān)于運算shell腳本只支持整形
例如:echo"ab= $ (($ a$b))"
注意這里必須使用雙括號
取值一定要加 $符號
(3)&&和||和[]的用法
cmd1&&cmd2:當(dāng)cmd1執(zhí)行成功則執(zhí)行cmd2否則不執(zhí)行cmd2
cmd1||cmd2:cmd1執(zhí)行失敗就執(zhí)行cmd2否則就不執(zhí)行
[]:
中括號之間的算數(shù)比較不是用大于小于等于號
而是
-eq:判斷代表兩值相等,相等返回真
-lt:判斷是否是小于
-ge:判斷大于等于
-le:判斷小于等于
中括號中的字符串的比較:
=:判斷兩字符串是否相等
!=:判斷兩字符串是否不等
-n:判斷字符串長度是否大于0(注意下圖-n和-z的用法)
-z:判斷字符串是否等于0
中括號中的邏輯語句 :
-a代表且
-o代表或
!代表非
(4)test:
text和中括號的參數(shù)類似
這里用等號判斷兩字符串是否相等的時候等號兩邊必須有空格
只不過把中括號換成test
比如if test $a -ge $b
text還能對文件操作:
以對-e進行操作
默認(rèn)查詢的是用戶家目錄
可以先進入一個目錄再進行查詢
目錄也是文件也可進行查詢
(3)if語句的應(yīng)用
**if+條件判斷+;+then判斷成功要進行的代碼+exit 0else+條件判斷+;+then判斷成功要做的事+exit 0+fi**這里c語言里邊的else if 在shell事elif然后else或者elif后邊跟的和if一樣
注意項:**if與條件判斷要有空格
中括號要與其中的參數(shù)有空格
**
(4)case語句
介紹case之前介紹三個默認(rèn)變量
$ 0~$ n:表示shell腳本的參數(shù),$S0代表被執(zhí)行文件的文件名
$#:代表最后一個參數(shù)的標(biāo)號
s@:全體參數(shù)集合
(補充 :./.sh文件+參數(shù)1+參數(shù)2.。。。。)
例子:
命令:master@ubuntu:~$ bash a.sh a b
運行結(jié)果:
case語句:
例子:
輸入:master@ubuntu:~$ bash a.sh c
輸出:ccc
注意這里兩個分號
還有結(jié)尾要有反著寫的case
(5)函數(shù):
函數(shù)在shell腳本中也需要調(diào)用
function(可加可不加)+函數(shù)名(){};
函數(shù)也可以傳參但是傳參是調(diào)用的時候在函數(shù)名后邊加參數(shù)而不是寫在函數(shù)里邊而且函數(shù)調(diào)用不用加()
例子:
(6)循環(huán)
while循環(huán):
while循環(huán)模式:
while+判斷式
do
若干個命令2
done
while循環(huán)和until循環(huán)兩個模式一樣但是while循環(huán)為真時循環(huán)繼續(xù),until循環(huán)是為假時候循環(huán)繼續(xù)
for循環(huán):
第一種for循環(huán):
for+變量+in+變量的取值+循環(huán)體+done
第二種和C語言差不多但是for后邊的小括號有兩個后邊加done
以下就是三種f循環(huán)語句的用法;
這里注意變量賦值時不需要$值但是當(dāng)要用到變量的值的時候需要加 $值
還有就是for循環(huán)里邊有兩個括號
兩數(shù)相加要加倆括號前面還要有 $
總結(jié)
以上是生活随笔為你收集整理的linux下的shell编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux部分系统IO函数
- 下一篇: JDK,JRE和JVM三者的关系以及ja