Shell指令碼學習筆記 使用者輸入處理

2021-07-11 10:13:19 字數 2825 閱讀 4654

1. 命令列引數

1.1 引數之間空格分隔,格式:$+position, e.g. $0, $1, $2,  其中$0表示指令碼名字,超過10個引數時,e.g. 第10個引數用$表示;

1.2 簡單示例:

1.3 通過建立軟連線的方式,同乙個指令碼,根據不同指令碼名字,執行不同指令碼內容,e.g.:

2. 命令列引數變數的處理

2.1 通過條件判斷,進行錯誤檢測:

2.2 通過shift命令,進行移動位置引數:

2.3 命令列引數選項處理:

2.3.1 簡單選項處理,e.g.:

2.3.2 分離選項和引數,e.g.:

2.3.3 處理帶值選項,e.g:

(備註:如上操作只能處理單個選項的時候,當出現選項合併的時候,e.g. --ab則無法處理)

2.3.4 getopt命令, 用於選項格式化,e.g:

#!/bin/sh

# b後面的冒號表示b選項帶有引數

2.3.5 當引數值帶有空格的時候,getopt命令則無法進行解析,需要用到getopts命令,e.g:

備註:optind:getopts使用optind作為索引,來處理下乙個需要處理的引數,記錄當前的狀態;

optarg:在上面的迴圈中,a,b兩個引數後面各有乙個冒號,冒號表示該輸入的引數後面還有乙個引數值,當getopts發現冒號後,會處理使用者輸入的引數值,這個引數值被儲存在optarg中。

3. 在指令碼中獲取使用者輸入 (分別通過重定向的方式和管道命令方式進行讀取)

shell指令碼學習 處理使用者輸入

當指令碼需要與執行指令碼的人員進行互動。bash shell提供了命令列引數 新增在命令後面的資料值 命令列選項 修改命令行為的單字元值 和直接讀取鍵盤輸入。向shell指令碼傳遞資料的最基本方式是使用命令列引數。讀取輸入的引數的變數為位置引數,位置引數通過標準數字表示,其中 0為程式名稱,1為第乙...

shell指令碼學習 處理使用者輸入

當指令碼需要與執行指令碼的人員進行互動。bash shell提供了命令列引數 新增在命令後面的資料值 命令列選項 修改命令行為的單字元值 和直接讀取鍵盤輸入。向shell指令碼傳遞資料的最基本方式是使用命令列引數。讀取輸入的引數的變數為位置引數,位置引數通過標準數字表示,其中 0為程式名稱,1為第乙...

shell指令碼學習筆記

學習筆記 1,檔案名字命名為 sh,字尾sh表明這是乙個bash指令碼檔案 2,shell指令碼的第一行如下 bin sh bin sh告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的shell程式 3,寫完指令碼後儲存檔案,然後將檔案變成可執行檔案 chmod x test.sh 4,以下是乙個...