1. 程式人生 > >學習筆記 shell指令碼基礎

學習筆記 shell指令碼基礎

簡單的指令碼檔案檔案,建立一個123.sh指令碼。執行時顯示當前目錄和當前目錄下的檔案資訊。

[[email protected] ~]# vi 123.sh
#!/bin/bash 
pwd
ls -al

在這裡插入圖片描述

bash直譯器命令直接執行Shell指令碼檔案外,第二種執行指令碼程式的方法是通過輸入完整路徑的方式來執行。但預設會因為許可權不足而提示報錯資訊,此時只需要為指令碼檔案增加執行許可權。

[[email protected] ~]# chmod 777 123.sh
[[email protected] ~]# ./123.sh
/root
total 80
dr-xr-x---. 14 root root 4096 Sep 26 14:22 .
drwxr-xr-x. 17 root root 4096 Sep  6 23:27 ..
-rwxrwxrwx.  1 root root   24 Sep 26 14:21 123.sh

接受使用者引數 為了讓Shell指令碼程式更好地滿足使用者的一些實時需求,以便靈活完成工作,必須要讓指令碼程式能夠像之前執行命令時那樣,接收使用者輸入的引數 0Shell0對應的是當前Shell指令碼程式的名稱,#對應的是總共有幾個引數,*對應的是所有位置的引數值,?對應的是顯示上一次命令的執行返回值,而$1、$2、$3……則分別對應著第N個位置的引數值

[[email protected] ~]# vi 123.sh

在這裡插入圖片描述 將引數放到指令碼檔案的後面 # ./123.sh 1 2 3 4 5 6 7 8 9 在這裡插入圖片描述

判斷語句 檔案測試所用的引數 -d 測試檔案是否為目錄型別 -e 測試檔案是否存在 -f 判斷是否為一般檔案 -r 測試當前使用者是否有許可權讀取 -w 測試當前使用者是否有許可權寫入 -x 測試當前使用者是否有許可權執行 使用檔案測試語句判斷,然後通過Shell直譯器的內設$?變數顯示上一條命令執行後的返回值。如果返回值為0,則目錄存在;如果返回值為非零的值,則意味著目錄不存在 在這裡插入圖片描述 使用邏輯‘與’運算。當前面的命令執行成功後才會執行它後面的命令 在這裡插入圖片描述 使用邏輯‘或’運算。表示當前面的命令執行失敗後才會執行它後面的命令 在這裡插入圖片描述 使用邏輯‘非’運算。表示把條件測試中的判斷結果取相反值。也就是說,如果原本測試的結果是正確的,則將其變成錯誤的;原本測試錯誤的結果則將其變成正確的 在這裡插入圖片描述
整數比較運算子 -eq 是否等於 -ne 是否不等於 -gt 是否大於 -lt 是否小於 -le 是否等於或小於 -ge 是否大於或等於 測試一下10是否大於10以及10是否等於10 在這裡插入圖片描述 常見的字串比較運算子 = 比較字串內容是否相同 != 比較字串內容是否不同 -z 判斷字串.0內容是否為空 接下來通過判斷String變數是否為空值,進而判斷是否定義了這個變數 在這裡插入圖片描述 邏輯運算子來試一下。當用於儲存當前語系的環境變數值LANG不是英語(en.US)時,則會滿足邏輯測試條件並輸出“Not en.US”(非英語)的字樣 在這裡插入圖片描述