[英]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.