中MySQL的Bash脚本

中MySQL的Bash脚本,mysql,bash,ubuntu,Mysql,Bash,Ubuntu,大家好, 请告诉我,我是bash脚本新手,我的bash脚本在连接到mysql服务器以检索信息方面遇到了一些挑战。这是我的剧本: #! /bin/bash MYSQL_USER="root" MYSQL_PASSWORD="bibson13" MYSQL_DATABASE="fredhosting" MYSQL="/usr/bin/mysql –u$MYSQL_USER –p$MYSQL_PASSWORD -D$MYSQL_DATABASE" $MYSQL -ss -e "select name

大家好, 请告诉我,我是bash脚本新手,我的bash脚本在连接到mysql服务器以检索信息方面遇到了一些挑战。这是我的剧本:

#! /bin/bash

MYSQL_USER="root"
MYSQL_PASSWORD="bibson13"
MYSQL_DATABASE="fredhosting"
MYSQL="/usr/bin/mysql –u$MYSQL_USER –p$MYSQL_PASSWORD -D$MYSQL_DATABASE"
$MYSQL -ss -e "select name,email,username,password from free_users where id_user=( select max(id_user) from free_users )"
但当我试着运行它时,我总是得到这样的结果:

/usr/bin/mysql  Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (i686) using readline 6.2
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Usage: /usr/bin/mysql [OPTIONS] [database]

拜托,我真的不知道我做错了什么。如果有人能帮我提供一些关于如何做的信息,我将不胜感激。

主要问题是您有一些坏字符。具体地说,如果您想键入
-u
-p
(带连字符),那么您可以使用
-u
-p
(带连字符)。这可能是通过文字处理器(如Microsoft word)复制和粘贴的结果(这绝不是一个好主意)。一旦您将这些连字符改回连字符,您就可以了。

您的MYSQL变量(E280)中的每个“-”符号前面都有两个无效字符。
尝试清理该行。

当我将您的
MYSQL=
行复制/粘贴到我的终端时,它会被弄乱。你能确保它没有隐藏的不可打印字符把它弄乱吗?除此之外,你的命令看起来是正确的。然后
echo$MYSQL
在设置变量后检查该变量的内容。试试
eval$MYSQL-ss…
。如果可以的话,那么用MYSQL_EXE和MYSQL_ARGS(或者您认为有用的名称)替换MYSQL。我没有mysql可供测试,但如果我有,我会首先尝试。祝你好运。别忘了接受一个有用的答案。非常感谢你,你是对的,当我改变角色时,它就像一个符咒。非常感谢你。