2

コマンドラインから実行すると問題はありませんが、スクリプトからは奇妙な方法でスクリプトが展開されます。

私のクエリ:

QUERY[1]="SELECT users.username AS \"User name\"FROM mytable WHERE creation_date > '${BEGIN}' AND creation_date < '${END}'"

スクリプトからの呼び出し:

$(mysql -hmyhost -uuser -pmypass -Dmydb -B -e "${QUERY[${query}]}")

そして私は得る:

-bash: ユーザー: コマンドが見つかりません

何がうまくいかないのですか?

ありがとう

4

2 に答える 2

0

$(somecommand) コマンド 'somecommand' の出力は、シェルによってコマンドとして使用されます。おそらくやりたいことは次のとおりです: output=$(somecommand)

于 2013-09-19T12:57:07.997 に答える
0
$(mysql -hmyhost -uuser -pmypass -Dmydb -B -e "${QUERY[${query}]}")

コマンド置換の下に配置する必要はないと思います:

mysql -hmyhost -uuser -pmypass -Dmydb -B -e "${QUERY[${query}]}"

の出力mysql ...も実行されるため、エラーが表示されますUser: command not found

于 2013-09-12T16:04:01.860 に答える