2016-05-15 7 views
0

のための動的な文字列私はカールでそれらをロードし、変数に結果を取得、特定のフォルダからファイルを取得しようとしている:bashの:カール

#!/bin/bash 
shopt -s nullglob 
FILES=* 
for f in $FILES 
do 
    core=$f 
    #echo "curl -H \"Content-Type: application/json\" --data-binary @$f http://v-cdh-master:8983/solr/$core/update/json?commit=true" 
    result=$(curl -H "Content-Type: application/json" -s --data-binary @$f http://v-cdh-master:8983/solr/$core/update/json?commit=true) 
done 

このスクリプトを実行した結果は、

curl: no URL specified! 
curl: try 'curl --help' or 'curl --manual' for more information 
です

私はエコー文字列からコメントを削除した場合、私は私が/ペーストIをコピーする際の完璧な作品、この

curl -H "Content-Type: application/json" --data-binary @affiliates_multival http://v-cdh-master:8983/solr/affiliates_multival/update/json?commit=true 

などの有効なURLを見ることができましたターミナルへ。

私の間違いはどこですか?

答えて

2

URLの?は、引数全体がグロブとして扱われますが、これはファイルと一致しません。 nullglobオプションが有効になっているため、curlへの呼び出しからその単語が削除されます。引き数を引用すると、echoコマンドの場合と同様に、パス名の生成を防止して問題を解決します。

result=$(curl -H "Content-Type: application/json" -s --data-binary @"$f" "http://v-cdh-master:8983/solr/$core/update/json?commit=true") 
+0

ありがとうございます。それは私のためにうまく動作します。 –