执行以下命令:
mysql -u root -p < load_data.sql > output.tab
该-p
标志告诉 mysql 客户端 - 一个 C 程序 - 为用户提供输入密码的交互式提示。
AFAIK,像这样的输入通常是通过写入提示stderr
然后阻塞调用来处理的gets
,它从标准输入读取一行。
但是shell已经打开了load_data.sql
文件并将stdin
mysql客户端的文件描述符设置为它的文件描述符——所以不应该调用gets
只从文件中获取第一行吗?
我最初的想法是程序会在读取一行之前搜索到最后——但你不能在管道上搜索!
那么这是如何工作的呢?有什么魔法吗?