接收在外壳的选择结果

问题描述:

好吧,我有这样的剧本接收在外壳的选择结果

#!/bin/bash 
keyOrPass=$1 
intercom=$2 
flat=$3 
number=$4 
mysql -ulogin -ppass db_name -e "select cli.codeGuestEmail, cli.codePrivateEmail, cliKey.rf_id, cliKey.emailNotification from mbus_clients as cli join mbusClientKeys as cliKey on cliKey.id_client=cli.id WHERE cli.flat=${flat} and cli.domophone=${intercom};"; 
php -q sendNotifications.php 

它工作正常,但我应该通过从选择一些结果字段到PHP变量。任何想法如何做到这一点?

OUTPUT:

+----------------+------------------+------------+-------------------+ 
| codeGuestEmail | codePrivateEmail | rf_id  | emailNotification | 
+----------------+------------------+------------+-------------------+ 
|    1 |    0 | 2774490192 |     0 | 
|    1 |    0 | 2774490193 |     0 | 
|    1 |    0 | 2774490194 |     0 | 
|    1 |    0 | 2774490195 |     1 | 
+----------------+------------------+------------+-------------------+ 
+2

wat?你为什么不在php中做这个? – 2014-10-27 12:43:02

+0

是否可以通过inetd运行php文件? – 2014-10-27 12:43:57

+1

你为什么要这样做?如果你想传递结果,那么你可以写一个命令行PHP脚本,或者你可以从PHP访问MySQL。您可以在某些Linox操作系统上将PHP脚本作为服务运行。 – 2014-10-27 12:44:05

MySQL的是能够产生格式不同的输出。使用-B--batch选项,mysql会生成TAB作为列分隔符的输出。字段中的特殊字符会被转义(例如TAB输出为“\ t”),因此您可以使用cut来提取字段。 在这种情况下,很多时候使用-N--skip-column-names选项也很有帮助,以便从输出中删除列名。

+0

我决定使用php。坚果我会标记你的答案。 – 2014-10-28 04:14:22