Как выполнить команду удара, снабженную как строка кавычками и звездочкой [дубликат]

Этот вопрос уже имеет ответ здесь:

Я пытаюсь выполнить следующую команду:

mysql AMORE -u username -ppassword -h localhost -e "SELECT  host  FROM amoreconfig"

Я храню его в строке:

cmd="mysql AMORE -u username -ppassword -h localhost -e\"SELECT  host  FROM amoreconfig\""

Протестируйте его:

echo $cmd
mysql AMORE -u username -ppassword -h localhost -e"SELECT host FROM amoreconfig"

Попытайтесь выполниться путем выполнения:

$cmd

И я получаю страницу справки mysql:

mysql  Ver 14.14 Distrib 5.1.31, for pc-linux-gnu (i686) using readline 5.1
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Usage: mysql [OPTIONS] [database]
(...)

Я предполагаю, что делаю что-то простая несправедливость с кавычками, но не могу узнать то, что является проблемой.

236
задан Stephane Rolland 13 February 2013 в 15:25
поделиться

2 ответа

[

]Пытались ли вы:[

] [
eval $cmd
] [

]Для последующего вопроса о том, как избежать []*[], так как он имеет особое значение, когда он голый или в двойных кавычках: используйте одинарные кавычки.[

] [
MYSQL='mysql AMORE -u username -ppassword -h localhost -e'
QUERY="SELECT "'*'" FROM amoreconfig" ;# <-- "double"'single'"double"
eval $MYSQL "'$QUERY'"
] [

]Бонус: Также хорошо читается: eval mysql-запрос ;-)[

].
352
ответ дан 23 November 2019 в 03:26
поделиться
[

] попробуйте это[

] [
$ cmd='mysql AMORE -u root --password="password" -h localhost -e "select host from amoreconfig"'
$ eval $cmd
]
23
ответ дан 23 November 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: