zhu的學習日記 shell指令碼學習一(基礎)

2021-07-23 06:50:53 字數 2004 閱讀 1981

學海無涯,程式設計是岸 ------剛入門shell指令碼的世界,希望記錄下自己的每個腳印,積累才是進步

(shell指令碼學習第一集:基礎)

一、$符號的用意

$1        獲取傳進來的第乙個引數

$2        獲取傳進來的第二個引數

$3        獲取傳進來的第三個引數

$#        一共多少個引數被傳進來

$?       前乙個命令是否正確執行

$$        獲取本pid號

二、輸出

1)echo ***

2)printf ***

三、雙引號與單引號的區別

'***'去掉引號裡面字元的特殊意義,比如\t是tab、\n是回車,在引號裡面,單純是斜槓+t,沒有特殊意義

"***"單純去掉空格,比如"a  b  c  d",其實就是"abcd"

四、數值比較

-eq       相等

-ne       不等

-gt       大於

-lt        小於

-ge      大於或等於

-le       小於或等於

-z        為空

-n        不為空

比如:a大於b為【  $a -gt $b

】 五、判斷

用來表示,並且裡面的兩端要空格,沒有空格則是普通的檔名

比如:[  $a = $b

]表示判斷a與b是否相等

[  $a -gt$b

]表示判斷是否a大於b

[$a -gt$b]

表示普通字串,因為兩端沒有空格

六、執行指令碼

1)./build.sh,點為當前目錄,build.sh為你要執行的指令碼

2)/aa/bb/build.sh,表示執行aa目錄裡面的bb目錄裡面的build.sh指令碼

七、檔案判斷

[   -e ***   ]  判斷***是否已經存在

[   -f ***   ]  判斷***是否是普通檔案

[   -s ***   ]  判斷***是否大小為零

[   -d ***   ]  判斷***是否是乙個目錄

[   -r ***   ]  判斷***是否對當前使用者可讀取

[   -u ***   ]  判斷***是否對當前使用者可寫入

[   -x ***   ]  判斷***是否是可執行檔案

[   -g ***   ]  判斷***的gid是否被設定

[   -u ***   ]  判斷***的vid是否被設定

[   -o ***   ]  判斷***是否屬於當前使用者

八、條件與判斷

if語句:以if開始,以fi結束

if[   $a = bb   ]

then  echo hello

elif[   $a = cc   ]

then  echo hi

else

echo nonono

fiswitch語句:以case開始,以esac結束

case  $a  in

bb)echo hello bb

;;cc)

echo hello cc

;;*)

echo helle other

esac

(後面那個*號就像是default一樣)

for迴圈:

for  $a in 12   13   14

doecho $a

done

(把12、13、14當作乙個集合,然後遍歷整個集合,並輸出)

九、除錯

執行的時候,用以下兩個語句來操作

1)bash -v ./build.sh這個是執行的時候,可以看見具體現在走到了哪一步

2)bash -vx ./build.sh這個是執行的時候,不單止可以看到現在走到了哪一步,而且每一步都會把變數替換,並展示給你看

今天就學習到這,內容難免有錯漏,待以後review,期待下一集

學習shell指令碼日記

linux,shell 2015 02 07 1.計畫任務 corntab e 編寫計畫任務 corntab l檢視計畫任務 corntab r清除所有的計畫任務 如果要清除某一項計畫任務,就是進入計畫任務的編輯頁面,逐個刪除就可以了 2.任務計畫編寫與執行 內容 格式 分 時 日 月 年 命令 r...

Shell學習日記

初識shell第一天 鳥哥的linux不是寫的不好,只是心態的改變影響了我讀書的心情吧。好了廢話不多說,說說學習shell程式設計的體會。shell是 使用者與作業系統核心溝通的一種工具,以ascii碼為依據把使用者輸入的資料翻譯成機器碼即為二進位制資料告訴作業系統。作業系統在執行完對應的操作後,依...

shell指令碼 簡單日記系統

b.sh 首頁 登入介面 echo haha echo 1 登入 echo 2 註冊 echo 3 退出 echo read p a case a in 1 clear 清屏!a a name cat root shell ming 1.txt grep w n cut d f 1 if z nam...