第二章 shell程式設計基礎

2022-08-03 09:24:08 字數 2130 閱讀 1731

2.1.1 shell指令碼的引數

常用引數

(1) *  以乙個字串顯示所向指令碼傳遞的引數,與位置變數不同,此引數可超過9個

(2) @ 從引數1開始,顯示所有向指令碼傳遞的引數,和上邊的*相似,下面會介紹區別

(3) # 引數數量,不包含引數0

(4) $ 指令碼執行的當前id號

(5) ! 後台執行的最後乙個id號

(6) ? 顯示最後命令的退出狀態,0表示沒有錯誤,其他任何值表明有錯誤

(7) - 顯示shell使用的當前選項,與set命令功能相同

注:① * 和 @ 的區別在於,當加上雙引號時,* 輸出的是將所有引數當成乙個字串輸出也就是"$1 $2 $3"

而@則是將所有引數乙個乙個輸出,也就是"$1" "$2" "$3"

② - 減號的作用,主要用於標準輸入與輸出中,在管道中應用,可以省去我們建立臨時檔案的過程

2.1.2 mv 移動或重新命名檔案或目錄

常用引數

(1) -f  //如果檔案的空間保留或者固定範圍大小無法儲存,就發出警告

(2) -i  //在覆蓋現有檔案之前不提示

2.1.3 mkidr 建立乙個或者多個新的目錄

常用引數

(1) -m 指定資料夾許可權大小

2.2.1 i/o重定向

2.2.2 cat 連線或顯示檔案

常用引數

(1) -n  //顯示行號

(2) -b  //顯示非空行號

(3) -s  //有連續兩行以上空行,則只顯示一行空行,其他省略

注:①tac 從結束到開頭顯示檔案

②不要使用重定向符號》將輸出重定向到輸入檔案之中。因為shell在cat命令可讀取該檔案之前先將它截斷了

2.2.3 | 管道

管道的資料共享是在核心中通過記憶體複製實現的,因此,在設計管道時,盡量把能夠江蘇資料量操作的置於管道前端。

2.2.4 head 顯示乙個檔案或多個檔案的前幾行或前幾個位元組

主要引數

(1) -n  //指定顯示的行數,預設為10

(2) 後邊也可以接多個檔案

2.2.5 檔案描述符

此部分有點難啊,,,,

待以後學習了後在補充吧

2.2.6 特殊檔案

(1) /dev/null  就像乙個「黑洞」,垃圾**站,寫進去的檔案不可讀,可以將不需要的垃圾檔案軟連線到這個檔案上。

(2) /dev/zero 這要用途是用來建立乙個指定長度,並且初始化為空的檔案,這種檔案一般都用作臨時交換檔案。

(3) /dev/tty  寫入這個檔案的內容可以在螢幕上顯示,很常用

printf"enter new passwd:"  //提示輸入

stty-echo           //關閉自動列印輸入字元的功能

read pass < /dev/tty      //讀取密碼

printf"enter again"       //在讀一次,確認密碼

read pass2< /dev/tty     //記得重新開啟自動列印輸入字元功能

stty echo

2.2.7 read 從標準輸入中讀取一行。

主要引數:

(1) -a 後跟乙個變數,該變數會被認為是個陣列,然後給其賦值,預設是以空格為分割符。

(2) -d 後面跟乙個標誌符,其實只有其後的第乙個字元有用,作為結束的標誌,會舉例說  明。

(3) -p 後面跟提示資訊,即在輸入前列印提示資訊。

(4) -e 在輸入的時候可以使用命令補全功能。

(5) -n 後跟乙個數字,定義輸入文字的長度,很實用。

(6) -r 遮蔽,如果沒有該選項,則作為乙個轉義字元,有的話 就是個正常的字元了。

(7) -s 安靜模式,在輸入字元時不再螢幕上顯示,例如login時輸入密碼。

(8) -t 後面跟秒數,定義輸入字元的等待時間。

(9) -u 後面跟fd,從檔案描述符中讀入,該檔案描述符可以是exec新開啟的。

2.3 一切皆檔案

共有其中檔案型別

(1) -  普通檔案

(2) d 目錄檔案

(3) c 字元裝置檔案

(4) b 塊裝置檔案

(5) s 套介面檔案

(6) l 符號鏈結檔案

(7) 管道檔案

第二章程式設計基礎

2 1 程式設計設計方法和風格 如何形成良好的程式設計風格 1 源程式文件化 2 資料說明的方法 3 語句的結構 4 輸入和輸出。注釋分序言性注釋和功能性注釋 語句結構清晰第 一 效率第二。2 2 結構化程式設計 結構化程式設計方法的四條原則是 1.自頂向下 2.逐步求精 3.模組化 4.限制使用 ...

linux程式設計 shell程式設計(第二章)

第二章 shell程式設計 本章介紹以下內容 什麼是shell 基本思路 微妙的語法 變數,條件判斷和程式控制 命令列表 函式命令和命令的執行 here文件 除錯grep命令和正規表示式 find命令 shell執行shell程式,這些程式通常稱為指令碼,它們是在執行時解釋執行的。這使得除錯工作比較...

第二章 shell變數

檢視所有全域性和區域性變數 delare和set 檢視所有全域性變數 env 定義環境變數 使用者變數在家目錄下的 bash profile和 bashrc中設定 全域性變數在 etc profile和 etc bashrc及 etc profile.d 下的指令碼檔案 登入shell待用流程 et...