我一直觉得命令行mysql
实用程序有点令人惊讶,因为您可以这样做:
gzcat dumpfile.sql.gz | mysql -u <user> -p <options>
并mysql
会提示您输入密码。现在,stdin
inmysql
被重定向了——人们会期望它从转储文件中读取密码。相反,它以某种方式绕过stdin
并直接前往终端。ssh
做同样的事情。
我怀疑这是某种魔法/dev/tty
,/dev/pty
但我希望能对这种明显的魔法做出适当的解释:)(以及为什么这些程序可以在任何平台上做到这一点,甚至是 Windows)。