シェルスクリプトの初心者です。私は、ファイル内の文字列の値をいくつか置き換えることを再考しました。コマンドラインから読み込む必要があり、シェルスクリプトは以下のようになります。配列に同じ名前の引数を持たせる方法
test.sh --old-value yahoo.com --new-value ibibo.io --old-value xxxxxx --new-value yyy --exclude aa bb cc
は今、私は他の配列に1列、--new-値に--old-値を読み込み、別の配列に--excludeたいです。
私は以下のアプローチを試しています。
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-valuesの両方を配列に読み込む必要があります。
このユースケースの達成方法をお手伝いできますか?
2つのオプションを持つことは少し冗長です。特に、ペアで*発生する必要があるように見えるためです。任意のチャンスを2つの引数を取る単一のオプションに減らすことができますか?例えば、 'test.sh --replace yahoo.com ibibo.io --replace xxxxx yyy --exclude aa bb cc' – chepner