Linux運維工程師的Shell腳本參數處理技巧

一、獲取命令行參數

Shell腳本中,可以使用$0、$1、$2、$3……$n來獲取命令行參數。其中,$0代表腳本本身,$1代表第一個參數,$2代表第二個參數,$3代表第三個參數,以此類推。

#!/bin/bash
echo "腳本名:$0"
echo "第一個參數:$1"
echo "第二個參數:$2"
echo "第三個參數:$3"

當我們執行該腳本並傳入參數時,輸出結果如下:

$ ./test.sh hello world shell
腳本名:./test.sh
第一個參數:hello
第二個參數:world
第三個參數:shell

二、判斷參數個數

在腳本中,我們需要對命令行參數進行校驗,確保輸入參數個數正確。可以使用”$#”獲取參數個數。

#!/bin/bash
if [ $# -ne 2 ]; then
    echo "請輸入兩個參數"
    exit 1
else
    echo "參數個數正確"
fi

執行腳本,當傳入的參數個數不為2時,則輸出”請輸入兩個參數”並退出;否則輸出”參數個數正確”。

$ ./test.sh
請輸入兩個參數

$ ./test.sh hello world
參數個數正確

三、判斷參數是否為空

在實際的運維場景中,我們往往需要對輸入的參數進行非空校驗。可以使用”-z”判斷參數是否為空。

#!/bin/bash
if [ -z "$1" ]; then
    echo "參數不能為空"
    exit 1
else
    echo "參數不為空"
fi

執行腳本,當傳入的參數為空時,則輸出”參數不能為空”並退出;否則輸出”參數不為空”。

$ ./test.sh
參數不能為空

$ ./test.sh hello
參數不為空

四、使用長選項

在腳本中,我們往往需要使用一些長選項來使得腳本更加易用。可以使用”getopt”命令來實現。

#!/bin/bash
while true; do
    case "$1" in
        -a | --all)
            echo "顯示所有信息"
            shift;;
        -v | --version)
            echo "顯示版本號"
            shift;;
        -h | --help)
            echo "顯示幫助信息"
            shift;;
        --)
            shift
            break;;
        *)
            echo "未知選項:$1"
            exit 1;;
    esac
done

執行腳本,可以傳遞”-a”、”–all”來顯示所有信息;”-v”、”–version”來顯示版本號;”-h”、”–help”來顯示幫助信息。如果傳遞了未知選項,則輸出”未知選項:XXX”。

$ ./test.sh -a
顯示所有信息

$ ./test.sh -v
顯示版本號

$ ./test.sh --help
顯示幫助信息

$ ./test.sh -x
未知選項:-x

五、處理命令行參數中的路徑

在腳本中,我們往往需要處理命令行參數中的路徑。可以使用”readlink”命令來獲取路徑的絕對路徑。

#!/bin/bash
filepath=$(readlink -f $1)
echo "文件路徑:$filepath"

執行腳本,輸出文件路徑的絕對路徑。

$ ./test.sh test.txt
文件路徑:/home/user/test.txt

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/182119.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-24 06:18
下一篇 2024-11-24 06:18

相關推薦

  • 使用vscode建立UML圖的實踐和技巧

    本文將重點介紹在使用vscode在軟件開發中如何建立UML圖,並且給出操作交互和技巧的指導。 一、概述 在軟件開發中,UML圖是必不可少的重要工具之一。它為軟件架構和各種設計模式的…

    編程 2025-04-29
  • Python腳本控制其他軟件

    Python作為一種簡單易學、功能強大的腳本語言,具有廣泛的應用領域,在自動化測試、Web開發、數據挖掘等領域都得到了廣泛的應用。其中,Python腳本控制其他軟件也是Python…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Spring Boot中發GET請求參數的處理

    本文將詳細介紹如何在Spring Boot中處理GET請求參數,並給出完整的代碼示例。 一、Spring Boot的GET請求參數基礎 在Spring Boot中,處理GET請求參…

    編程 2025-04-29
  • Python input參數變量用法介紹

    本文將從多個方面對Python input括號里參數變量進行闡述與詳解,並提供相應的代碼示例。 一、基本介紹 Python input()函數用於獲取用戶輸入。當程序運行到inpu…

    編程 2025-04-29
  • lsw2u1:全能編程開發工程師的利器

    lsw2u1是一款多功能工具,可以為全能編程開發工程師提供便利的支持。本文將從多個方面對lsw2u1做詳細闡述,並給出對應代碼示例。 一、快速存取代碼段 在日常開發中,我們總會使用…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • Python Class括號中的參數用法介紹

    本文將對Python中類的括號中的參數進行詳細解析,以幫助初學者熟悉和掌握類的創建以及參數設置。 一、Class的基本定義 在Python中,通過使用關鍵字class來定義類。類包…

    編程 2025-04-29
  • Shell腳本與Python腳本的區別

    本文將從多個方面對Shell腳本與Python腳本的區別做詳細的闡述。 一、語法差異 Shell腳本和Python腳本的語法存在明顯差異。 Shell腳本是一種基於字符命令行的語言…

    編程 2025-04-29

發表回復

登錄後才能評論