我是Shell腳本編程的新手。我需要替換文件中的幾個字符串值。它們必須從命令行讀取,shell腳本如下所示。如何將相同的命名參數轉換爲數組
test.sh --old-value yahoo.com --new-value ibibo.io --old-value xxxxxx --new-value yyy --exclude aa bb cc
現在,我想讀--old值到一個數組, - 新值到其他數組和 - 排除到另一個數組。
我正在嘗試下面的方法。
while [[ $# -gt 1 ]]
do
key="$1"
case $key in
--old-value)
OLDVALUE="$2"
shift # past argument
;;
--new-value)
NEWVALUE="$2"
shift # past argument
;;
--exclude)
EXCLUDEFILETYPES=("[email protected]")
shift
;;
*)
# unknown option
;;
esac
shift # past argument or value
done
但是這會將舊值讀入OLDVALUE。我必須將兩個--old值讀入數組。
有人可以幫助如何實現這個用例嗎?
有兩個選項有點冗長,特別是因爲它會出現它們必須成對出現;你有什麼機會把它減少到只有兩個參數的單個選項?例如,'test.sh --replace yahoo.com ibibo.io --replace xxxxx yyy --exclude aa bb cc' – chepner