doujia8801 2014-10-27 12:41
浏览 34
已采纳

接收select in shell的结果

Ok, I have such script

#!/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

It works fine, but I should pass some result fields from select into php arguments. Any ideas how to do it?

OUTPUT:

+----------------+------------------+------------+-------------------+ 
| codeGuestEmail | codePrivateEmail | rf_id      | emailNotification |
+----------------+------------------+------------+-------------------+
|              1 |                0 | 2774490192 |                 0 |
|              1 |                0 | 2774490193 |                 0 |
|              1 |                0 | 2774490194 |                 0 |
|              1 |                0 | 2774490195 |                 1 |
+----------------+------------------+------------+-------------------+
  • 写回答

1条回答 默认 最新

  • dongshang1979 2014-10-27 13:55
    关注

    mysql is capable of generating output formatted differently. With the -B or --batch option, mysql produces the output with TAB as the column separator. The special characters in the fields are escaped (e.g. TAB is output as "\t") so you can use cut to extract fields. Many times in cases like this it's helpful to use the -N or --skip-column-names option as well, in order to remove column names from the output.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?