这本身不是 Python 问题。这是一个 Unix shell 行为,与 Windows 和其他系统不同。有关更完整的解释,请参阅CTRL-Z 上的 Wikipedia 文章:
在类 Unix 系统上,Control+Z 是用于暂停进程 (SIGTSTP) 的键序列的最常见的默认键盘映射。当用户在他们的计算机终端输入时,当前运行的前台进程会被发送一个 SIGTSTP 信号,这通常会导致进程暂停其执行。用户稍后可以通过键入命令“fg”(前台的缩写)或键入“bg”(后台的缩写)并进一步键入命令“disown”来将后台进程与终端分开来继续执行进程。
在 OS X 上和其他各种基于 Unix 的系统上一样,您可以使用该stty
命令来更改哪个键(如果有)产生 a SIGTSTP
(或eof
,就此而言):
$ stty -a
speed 38400 baud; 30 rows; 90 columns;
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
$ stty susp ^Y
$ cat
^Y
[1]+ Stopped cat