接收在外壳的选择结果
问题描述:
好吧,我有这样的剧本接收在外壳的选择结果
#!/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 |
+----------------+------------------+------------+-------------------+
答
MySQL的是能够产生格式不同的输出。使用-B
或--batch
选项,mysql会生成TAB作为列分隔符的输出。字段中的特殊字符会被转义(例如TAB输出为“\ t”),因此您可以使用cut
来提取字段。 在这种情况下,很多时候使用-N
或--skip-column-names
选项也很有帮助,以便从输出中删除列名。
+0
我决定使用php。坚果我会标记你的答案。 – 2014-10-28 04:14:22
wat?你为什么不在php中做这个? – 2014-10-27 12:43:02
是否可以通过inetd运行php文件? – 2014-10-27 12:43:57
你为什么要这样做?如果你想传递结果,那么你可以写一个命令行PHP脚本,或者你可以从PHP访问MySQL。您可以在某些Linox操作系统上将PHP脚本作为服务运行。 – 2014-10-27 12:44:05