问题标签 [stty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
653 浏览

python - Python 诅咒 unsets 'onlcr' 并破坏了我的终端;如何重置*正确*

我在 Python3 中有以下基本的诅咒实现。

几乎所有事情都发生了我所期望的:Shoggoths 被召唤,Razzes 被matazzed,但是当我进入时,git status我的换行符被打破了。

在显示之前和之后进行差异stty -a

在调查了这些选项之后,我发现发布stty onlcr修复了终端。然而,我很惊讶,因为我认为这curses.endwin()会让我重新振作起来:

取消初始化库,并使终端恢复正常状态。

我认为这可能是 iTerm2 中的问题,所以我尝试使用 Terminal.app。这产生了相同的行为。

我很难过还有其他一些重置技术吗?我在基于 C 的实现中看到 stty 数据通常保存到结构中以进行恢复……这可能是一种追求途径。

谢谢你的帮助!

0 投票
1 回答
1502 浏览

go - golang 中的终端:syscall vs os/exec stty

这就是在 go 中通过系统调用获得(POSIX)终端大小的方式:

现在,同样的事情,用 os/exec 调用 stty:

在实践中,第一个解决方案可能会变得非常繁重且难以阅读,当一个人必须将终端置于原始模式、设置选项等时。当一个人习惯于 stty 时(例如在 shell 脚本中),第二个解决方案要容易得多!

所以我的问题是:使用第一个解决方案有什么好处?是速度?是不是我们不能依赖 stty 命令安装在宿主机上?还有什么我没有想到的吗?

简而言之,使用 stty 与系统调用的“风险”或“成本”是什么?

0 投票
2 回答
2532 浏览

zsh - 使 stty raw -echo 适用于 zsh 或 fish

我想知道是否有人有办法stty raw -echo在鱼或 zsh 上制作作品。

我用它来升级反向shell但是当我做fg时我不能按“enter”等

我得到了这个结果:

在此处输入图像描述

谢谢 !

0 投票
1 回答
1003 浏览

python - 任何想法如何替换 os.system("stty echo") 在 Windows 中工作?

我的一个朋友在 Mac 上编写了 python 代码,现在我正试图让它在 Windows 笔记本电脑上工作。

这条线尤其令人讨厌:

有人知道windows等价物吗?我已经用 msvcrt 替换了 tty,但我完全坚持这一点。

0 投票
2 回答
3951 浏览

bash - bash 中的 SSH while 循环。不会分配伪终端,因为 stdin 不是终端

我正在尝试将文件循环到 ssh 到服务器列表,并在这些服务器上为某些日志文件执行查找命令。我知道 ssh 会吞下整个输入文件。所以我使用 -n 参数来 ssh。这工作正常,但在某些服务器上我遇到了一个新错误。

输入文件的构建方式如下: servername:location:mtime:logfileexention

我使用的 Bash 中的代码是:

在某些服务器上,我收到以下错误:

不会分配伪终端,因为 stdin 不是终端。stty:标准输入:设备的 ioctl 不合适

我尝试了多种选择来解决这个问题。我使用了 -t、-tt、-T 选项,但是当使用这些选项时,相同的错误仍然存​​在,或者终端变得无响应。

有人对此有解决方案吗?

0 投票
0 回答
190 浏览

go - 在测试中调用“stty size”会产生“Inappropriate ioctl for device”错误,如何解决?

我需要获取终端窗口的尺寸,我发现这个问题为我提供了一个可行的解决方案。
但是,现在我正在为它编写一个测试,两个顶级提供的解决方案(使用cmd.Stdin = os.StdinSyscall)都为我返回一个错误:

我正在使用 Goland IDE,但测试似乎完全无法从 IDE 和命令提示符运行。也许你们中的任何人都知道如何解决或找到这个问题的根源?

0 投票
1 回答
666 浏览

linux - 使用 bash 和树莓派 3 从 USB 设备读取数据?

我正在尝试捕获连接到 USB 的设备的响应。使用此代码:

在端口就绪时,向设备发送命令请求

然后阅读日志并将响应粘贴到另一个文件中正确转换它 xxd -plain /home/received.log > /home/output.txt

所以我可以显示数据, cat -v < /home/output.txt

但是我需要更稳定的东西,该代码向我显示了这个错误:

这很奇怪,因为它正在工作......

我想捕捉响应并将其存储在变量中。

0 投票
1 回答
2163 浏览

linux - 用于奇偶校验的 stty 串行端口设置不持久

我有一个打开串行端口的 netcore 应用程序,一旦检测到奇偶校验错误,就会在控制台上写入“奇偶校验错误”。它在 Windows 10 中运行良好,但无法在 Linux 下运行。

我的假设是操作系统没有将奇偶校验错误传递给 netcore。

为了检查我运行的端口设置:

然后我运行:

并且设置似乎按预期正确设置(-ignpar inpck)。

然后我运行我的 netcore 3 应用程序,但未检测到奇偶校验错误。

所以我跑

用于验证设置,但这些似乎已重置(-ignpar -inpck)

如何强制我的应用程序在启用了 inpck 属性的情况下运行?
有没有办法让 inpck 默认启用?

谢谢。

更新:netcore 3 应用奇偶校验错误检测在 windows 10 中工作正常,但在 linux 下不起作用。我的假设是:

  • A) netcore 运行时没有将奇偶校验设置传递给驱动程序(不太可能)
  • B)操作系统忽略了指令。
0 投票
1 回答
160 浏览

bash - Bash:读取输入可用(是否有任何按键?)

问题

我正在使用 Bash 5 并且有一个长时间运行的循环,需要偶尔检查用户可能按下的各种键。我知道如何使用stty- 请参阅下面的答案 - 但它比应该的更难看。

本质上,我正在寻找一种干净的方法来做到这一点:

非解决方案:读取 -t 0

我已阅读bash手册并了解read -t 0. 这不符合我的要求,即检测是否有任何输入可用。相反,它仅在用户按 ENTER(完整的输入行)时才返回 true。

例如:

0 投票
1 回答
515 浏览

c - Unix(Mac OS)终端不将 Ctrl+D 视为 EOF

我遇到的问题:当我玩getchar()行为时,我发现我的终端(macOS Mohave 版本 10.14.6 18G87)不支持 Ctrl+D 作为 EOF。

我是如何遇到问题的:

下面附上代码getchar(),基本上这个代码是 echo getchar() 如果输入字符不是空白,否则,对于多个连续空白字符,它只输出一个空白字符。代码本身可以工作,但是在终端中运行它时,终端不会将 Ctrl+D 视为 EOF,因此代码永远不会终止。 我确信这是由于我错误地使用了system ("/bin/stty raw");system ("/bin/stty cooked");但是,我不知道如何修复它。

我检查了stty,但是,它确实配置EOFCtrl +D. 但是,现在,如果我按Ctrl + D,它只会将终端从一个窗口拆分为两个。

在此处输入图像描述

我可以做些什么来允许EOF重新启用?

谢谢!