2

次のbashスクリプトがあります:

 1  #!/bin/bash
 2  query='query= SELECT * WHERE { ?s ?p ?o } LIMIT 5'
 3  cmd="curl $1 -s -d \"$query\""
 4  echo "$cmd"
 5  # curl $1 -s -d "$query"
 6  # $cmd

5 行目と 6 行目も同じようにする必要があります。5 行目のコメントを外すと、すべて正常に動作します。しかし、6行目では何も機能しません。

だから私は何が違うのだろうか?

ありがとう。

4

2 に答える 2

2

いいえ; 4行目では、コマンドを「エコー」して表示しています。6 行目で実際にコマンドが実行されます。

例えば

$eg="ls /var/www"
echo $eg #This would literally return ls /var/www"
$eg #This would return the directory listing of /var/www/ (actually run the command).
于 2012-04-08T19:08:43.583 に答える
1

$query5行目は単一の引数として渡されます。6行目では、の各単語を$query個別の引数として渡します。"最初の単語の先頭と"最後の単語の最後にあります。代わりに、引数を配列に入れてください。

于 2012-04-08T20:25:34.660 に答える