jmq*_*jmq 7 cygwin bash sqlite mintty
我正在尝试在 cygwin 中使用带有 mintty 终端的 sqlite3.exe 命令外壳。我从 Windows 命令提示符尝试了该程序,它可以工作。当我尝试从 cygwin mintty 终端使用它时,程序似乎挂起。我可以看到参数和版本。当我运行 shell 时,它就好像停止写入终端一样。
以前有没有其他人遇到过这个问题,如果有,你是如何解决的?TIA。
~>sqlite3 -help
Usage: C:\Windows\sqlite3.exe [OPTIONS] FILENAME [SQL]
FILENAME is the name of an SQLite database. A new database is created
if the file does not previously exist.
OPTIONS include:
-init filename read/process named file
-echo print commands before execution
-[no]header turn headers on or off
-bail stop after hitting an error
-interactive force interactive I/O
-batch force batch I/O
-column set output mode to 'column'
-csv set output mode to 'csv'
-html set output mode to HTML
-line set output mode to 'line'
-list set output mode to 'list'
-separator 'x' set output field separator (|)
-nullvalue 'text' set text string for NULL values
-version show SQLite version
~>sqlite3
Run Code Online (Sandbox Code Playgroud)
这是它挂起的地方。以下是一些相关软件的版本。
~>uname -srv
CYGWIN_NT-6.1-WOW64 1.7.7(0.230/5/3) 2010-08-31 09:58
~>mintty --version
mintty 0.9.5
(C) 2010 Andy Koppe
~>bash -version
bash -version
GNU bash, version 4.1.9(3)-release (i686-pc-cygwin)
Copyright (C) 2009 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)
编辑:当我从 Windows 命令行运行程序时,程序可以运行。这是我应该看到的:
C:\Users\jmquigley\workspace\apis.net\sqlite>sqlite3
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .quit
Run Code Online (Sandbox Code Playgroud)
当我在 cygwin 中运行命令时,它永远不会进入 shell;它似乎挂断了,我必须按 CTRL + C 来终止它并返回到 bash 命令提示符。
ak2*_*ak2 10
交互式非 Cygwin 程序通常无法在 Cygwin 终端(例如基于伪终端(“pty”)设备的 mintty)中正常运行。那是因为 Cygwin 使用 Windows 管道来模拟 pty,所以本地控制台程序会在他们希望看到控制台的地方看到一个管道。除其他问题外,这通常会导致他们进入非交互模式。有关更多信息,请参见此处:
http://code.google.com/p/mintty/issues/detail?id=56
您可能可以使用-interactiveswitch让它正常工作,但真正的解决方案是通过 Cygwin setup.exe安装 SQLite3 的 Cygwin 版本。