该程序的一件事mysql
引起了我的注意。可以告诉它通过-p
标志以交互方式询问密码,在这种情况下,正如您所期望的那样,您的终端中会出现一个提示,并且输入的任何内容都会被接受为密码。令我惊讶的是,即使您重定向所有三个,也会发生这种情况std{in,out,err}
:
$ mysql -p </dev/null >/dev/null 2>/dev/null
Enter password:
它也能正确读取密码。如果重定向stderr
到文件,则可以检查登录是否失败。
进程如何知道在哪个终端上请求密码?它是否检查附加终端到父进程?