我尝试执行以下命令:
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]
(...)我想我做了一些明显错误的引用,但找不到问题所在。
发布于 2010-01-05 17:57:54
您是否尝试过:
eval $cmd接下来的问题是如何转义*,因为它在无引号或双引号字符串中有特殊含义:使用单引号。
MYSQL='mysql AMORE -u username -ppassword -h localhost -e'
QUERY="SELECT "'*'" FROM amoreconfig" ;# <-- "double"'single'"double"
eval $MYSQL "'$QUERY'"额外的好处:它读起来也不错: eval mysql查询;-)
发布于 2010-01-05 18:03:30
尝尝这个
$ cmd='mysql AMORE -u root --password="password" -h localhost -e "select host from amoreconfig"'
$ eval $cmd发布于 2015-08-29 05:22:25
你甚至不需要"eval“。只需在字符串前面放一个美元符号:
cmd="ls"
$cmdhttps://stackoverflow.com/questions/2005192
复制相似问题