现在很是郁闷
原来的shell脚本是这样写的:
/usr/bin/mysql -u www -p<< mysql
use aaadata
select DeviceIP from UserList where fd > 3 
\q
mysql
exit 0
操作数据库成功,但是我稍微改一下就不行
DATABASE=aaadata
/usr/bin/mysql -u www -p<< mysql
use $DATABASE
select DeviceIP from UserList where fd > 3 
\q
mysql
exit 0
出现的错误是:
'RROR 1102 (42000) at line 1: Incorrect database name 'aaadata
: numeric argument required但是我在DATABASE=aaadata下面加了一行
echo $DATABASE
屏幕显示:aaadata
为什么我下面use时aaadata就会多一个'呢?我之前也写过一个小的测试程序:
nawk '{print $1, $2}' /home/a/picnic.txt
出现的错误是
(No such file or directory)cnic.txt
不明白怎么回事,渴望高手指点

解决方案 »

  1.   

    本帖最后由 yueliangdao0608 于 2007-10-11 10:12:09 编辑
      

  2.   

    /usr/bin/mysql -u www -b $DATABASE -p  << mysql  
    好像不对吧,出来的是
    -B, --batch         Don't use history file. Disable interactive behavior.
                          (Enables --silent)出来的结果是:Usage: mysql [OPTIONS] [database]的用法介绍,出来了一屏-D, --database=name Database to use我改了一下:
    /usr/bin/mysql -u www -D $DATABASE -p  << mysql 出来的结果还是:
    'RROR 1102 (42000): Incorrect database name '
      

  3.   

    那你就改成 /user/bin/mysql -uwww -D$DATABASE -pyour password -e "select DeviceIP from UserList where fd   > 3  "好就没用LINUX了。不知道对不对,你试试
      

  4.   

    好像高手误解我的意思了
    我的问题是:我直接在脚本里写:usr/bin/mysql -u www -D aaadata -p   < < mysql  就会出来正确结果
    但是:我要是:
    DATABASE=aaadata 
    echo $DATABASE
    /usr/bin/mysql -u www -D $DATABASE -p  << mysql 
    就会出现下面的错误:'RROR 1102 (42000): Incorrect database name 'aaadata 
    而echo打印出来的内容也是:aaadata ,为什么一些到命令里面就不对了?就会多了一个'?