2017-05-20 4 views
0

現在、MLBのGamedayデータからいくつかの野球選手ID番号を解析するスクリプトを書いています。私は今日の日付をURLに入力し、コマンドライン引数としてチーム名を受け入れるためにスクリプトを設定しています。curlをbashスクリプトで使用するときに改行を保存する

次のステップは、URLをcurlに渡して今日のゲームのリストを取得し、チーム名でgrepを使用して適切なゲームを見つけることです。

私は、コマンドラインでこれを書くとき:

curl -s http://gd2.mlb.com/components/game/mlb/year_2017/month_05/day_20/ | grep tormlb 

それは動作します。しかし

、私は私のスクリプトでこれを書く:私は、改行せずにHTMLの混乱を返されています

mlb_dir=$(curl -s $url | grep $team) 
echo $mlb_dir 

。 $ urlは上記のコードブロックのurlに相当し、$ teamは上のように "tormlb"に設定されています。

スクリプトを実行するときにコマンドラインを使用するときに、私が望む結果を得る方法を混乱させます。私が間違っているところを知る手がかりは?

+1

引用実はこれは同様に引用符なしで私のために働いた – 123

答えて

1

変数にコマンドを渡すと、変数は展開され、空白で引数に分割されます。 echoは引数をスペースで区切って出力します。

変数が単一の引数として扱われるようにするには、二重引用符で囲みます。コード内で使用している他の変数についても、これを行う必要があります。

mlb_dir=$(curl -s "$url" | grep "$team") 
echo "$mlb_dir" 

詳しい情報:http://tldp.org/LDP/abs/html/quotingvar.html

+0

あなたの変数。 – gaganshera

+0

@gaganshera引用符を付けないと、 '$ mlb_dir'に複数の行がある場合、それらは' echo'によって1行として出力されます。 – augurar

+0

ありがとうございました! –

関連する問題