2017-08-17 17 views
0

bashのみを使用してpoloniex restクライアントから複数のオプションを使用してグラフデータをダウンロードする必要があります。 私はgetoptsを試みましたが、実際には複数のオプションを使用する方法を見つけることができませんでした。ここ複数のオプションで複数の引数を指定してbashを処理する方法

は私が

./getdata.sh -c currency1 currency2 ... -p period1 period2 ... 

は、私はよく私が明示的に探し、おそらく多くの人としての私の究極の目標を書いていますc x p

for currency in c 
    for period in p 
     wget https://poloniex.com/public?command=returnChartData&currencyPair=BTC_{$currency}&start=1405699200&end=9999999999&period={$period} 

ためにwgetを呼び出す必要があり、引数を持つ達成したいものですそれは今日です。

答えて

1

このような機能はありますか?

./script.sh -p 'world' -a 'hello' 

上記の出力は次のようになります:あなたは同じオプションの複数を使用することができます

Argument 1 is hello 
Argument 2 is world 

更新

あなたは、このようなあなたのスクリプトを呼び出すことができます

#!/bin/bash 

while getopts ":a:p:" opt; do 
    case $opt in 
    a) arg1="$OPTARG" 
    ;; 
    p) arg2="$OPTARG" 
    ;; 
    \?) echo "Invalid option -$OPTARG" >&2 
    ;; 
    esac 
done 

printf "Argument 1 is %s\n" "$arg1" 
printf "Argument 2 is %s\n" "$arg2" 

回。引数の値を解析するときに、それらを配列に追加できます。

次のようにあなたは、あなたのスクリプトを呼び出すことができます
#!/bin/bash 

while getopts "c:" opt; do 
    case $opt in 
     c) currs+=("$OPTARG");; 
     #... 
    esac 
done 
shift $((OPTIND -1)) 

for cur in "${currs[@]}"; do 
    echo "$cur" 
done 

./script.sh -c USD -c CAD 

を出力は次のようになります。

USD 
CAD 

参考:BASH: getopts retrieving multiple variables from one flag

+0

残念ながら、私は./script.sh -pようなものが必要「世界」 'おじさん-A「どのように」「です」「あなた」 – hevi

+0

@heviと同じオプションを複数回使用する方法を示す例を提供しています。おそらく、これは複数の値を扱うために必要なことです。 – mscheker

1

あなたは ./getdata.sh "currency1 currency2" "period1 period2"

0123を呼び出すことができます

getdata.sh内容:私は私の答えを更新し

c=$1 
p=$2 

for currency in $c ; do 
    for period in $p ; do 
    wget ...$currency...$period... 
    done 
done 
+0

正確には私が望んでいたものではなく、シンプルな素晴らしいソリューション感謝。 – hevi

関連する問題