簡體   English   中英

如何傳遞多個 arguments 並讀入 shell 腳本

[英]how to pass multiple arguments and read in shell script

我需要閱讀多個參數,將每個參數分配給 shell 腳本中的不同變量

例子:

.run.sh --argument1=value1 --argument2=value2 --argument3=value3

在我的代碼中,我需要閱讀這個並指定為,

變量 1=值 1

變量 2=值 2

變量 3=值 3

我試圖循環讀取但不確定如何在“=”符號后立即讀取值

for i in "$@"
do
case $i in
--argument1)
    variable1="..."
    shift
    ;;
esac
done 

設置variable1=$2然后shift 2

盡管我建議改為使用getopts進行參數解析。 Kevin Sookocheff 的這篇博客文章是一個很好的參考。

也許你需要一個關聯數組。

#!/usr/bin/env bash

n=1
declare -A array

for f; do
  array["variable$((n++))"]=${f##*=}
done

echo "${array[variable1]}"
echo "${array[variable2]}"
echo "${array[variable3]}

針對您的樣本 arguments 運行它。

./run.sh --argument1=value1 --argument2=value2 --argument3=value3

Output

value1
value2
value3

盡管選項解析器可能更適合這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM