zpty로 mysql을 제어하는 ​​방법은 무엇입니까?

zpty로 mysql을 제어하는 ​​방법은 무엇입니까?

mysql 콘솔 클라이언트용 래퍼 스크립트를 작성하려고 합니다. 이 작업을 수행하는 동안 나는 우연히 zpty를 발견했습니다. 완벽해 보이네요.

첫 번째 목표는 일부 테이블 내용을 검색하는 것이지만 실패했습니다. 매우 이상한 동작이 있습니다.

zsh를 실행하고 나 자신을 입력하면

$ zmodload zsh/zpty
$ zpty -b MYSQL mysql DATABASE-NAME
$ zpty -r MYSQL

모든 것이 예상대로 작동하고

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 448
Server version: 5.5.54-0+deb8u1 (Debian)

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [DATABASE-NAME]> %

인쇄됩니다.

쉘스크립트에 같은 코드를 입력하면

#!/bin/zsh
zmodload zsh/zpty
zpty -b MYSQL mysql DATABASE-NAME
zpty -r MYSQL

실행하면 아무것도 인쇄되지 않습니다.

쉘스크립트에서 -b를 제거하면

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 449
Serv

인쇄됩니다. 그런 다음 스크립트가 정지됩니다.

전반적으로 나는 매우 일관되지 않은 동작을 발견했습니다. 이것은 버그입니까? 내가 뭘 잘못했나요?

관련 정보