Linux Bash。两条线有什么区别?

时间:2012-04-08 18:59:53

标签: linux bash scripting

我有一个以下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行,没有什么不起作用。

所以我想知道差异是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

没有;在第4行,你只是通过" echo"来显示命令;第6行实际执行命令。

E.g。

$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).

答案 1 :(得分:1)

第5行将$query作为单个参数传递。第6行将$query的每个单词作为单独的参数传递,第一行的开头为",最后一个的末尾为"Put your arguments in an array instead.