问题标签 [tty]

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 回答
1203 浏览

git - 是否可以接受用户输入作为远程 git post-receive 钩子的一部分?

我有一个 post-receive 钩子,每当我们推送 master 时,它都会部署我们的 master 分支。

我想让部署成为可选;钩子要求简单的 Y/N 响应来实现这一点;bash 伪代码如下:

由于 post-receive 钩子在标准输入上获取其参数的方式,该 read 行不会暂停用户输入,并且脚本循环循环试图获得 Y/N 答案。

我认为专门要求 from/dev/tty可以解决这个问题;

但这仍然会导致脚本无休止地循环,因为输入不是来自键盘。

在这种情况下是否真的有可能获得键盘输入?

编辑: 啊。看起来这实际上是 ssh 的罪魁祸首。现在查看输出,我添加了 < /dev/tty I'm seen /dev/tty: No such device or address

如果我在本地运行脚本,我可以模仿这一点,但通过 ssh:

编辑2:

因此,我可以将 -t 选项设置为 ssh 以根据在 ssh 会话中启用 tty来请求 tty,或者我可以在服务器上的 authorised_keys 文件中基于每个密钥启用它

编辑3:

创建后 ~/bin/ssh -t

(双 -t 选项强制一个 tty)并设置 GIT_SSH 指向它,我现在得到可怕的致命:协议错误:坏行长度字符:后跟 005,我猜这是 .bash_profile 或类似的回声之前git有机会运行

0 投票
4 回答
36484 浏览

linux - 如何在 gnu 屏幕中切换 CR/LF?

我正在使用屏幕从串行控制台读取文本。问题是输出似乎只有换行符 \n 而没有回车符 \r,所以显示看起来像这样......

我想知道有没有补丁可以解决这个问题?

0 投票
1 回答
230 浏览

python - “脚本”vim 使用更细粒度的 python

我正在尝试编写一个可以自动化 vim 的 python 脚本,但是 python vim 接口并没有给我足够的能力来做我需要的一切。我想与 vim 通信,就好像我的脚本是一个 tty(能够发出“可视模式”指令等)。就 vim 而言,我的脚本是人类运行 xterm(或其他)。这可以在没有在 python 中构建我自己的终端仿真器的情况下完成吗?

0 投票
3 回答
466 浏览

python - 在 XML 文件中存储 VT100 转义码

我正在编写一个记录终端交互的 Python 程序(类似于脚本程序),我想以 XML 格式存储日志。

问题是终端交互包含VT100转义码。如果我将数据以 UTF-8 编码格式写入文件,Python 不会抱怨,例如:

这个脚本“工作”的意义在于它将文件写入磁盘,但生成的文件不是正确的 utf-8,这会导致像 etree 这样的 XML 解析器在转义码上出错。

解决这个问题的一种方法是首先过滤掉转义码。但是,是否可以在维护转义码的情况下执行类似的操作,并且可以通过 etree 等 XML 工具解析生成的文件?

0 投票
1 回答
476 浏览

stdout - 使用 /dev/tty 重置 STDOUT 和 STDERR

我正在尝试将 stdout 和 stderr 重定向到一个文件,然后将它们恢复为原始设置。我已经成功地将输出重定向到一个文件,但我似乎无法从 tty 恢复它们。这是我拥有的代码:

对 tty 的公开调用总是失败。(返回 -1)。我正在尝试做一些根本错误的事情吗?

我也认为这可能是权限问题,所以我检查了它们:

crw-rw-rw- 1 根轮 2, 0 Oct 21 10:46 /dev/tty

我在 Snow Leopard 上开发它的价值,

提前感谢您的帮助。

0 投票
1 回答
1980 浏览

php - PHP 为 sudo 创建“假”TTY

保持简短;

PHP 脚本需要运行/etc/init.d/nagios reload,添加apache ALL = (nagios) NOPASSWD: /etc/init.d/nagios到 sudo-ers 文件中,但是要使用 SUDO PHP 需要一个 TTY(我不想删除Defaults requiretty,所以我想“伪造”或为 PHP 脚本创建一个 TTY,以便它可以重新加载 Nagios .

红帽 6,PHP 5.3

0 投票
1 回答
595 浏览

tty - Linux下TTY的内部工作原理

我一直在试图弄清楚 TTY 驱动程序是如何工作的(充分理解每个内核的实现可能不同),并且偶然发现了一篇不错的文章:The TTY demystified

但是我注意到它声称 xterm 没有stdin,stdoutstderr. xterm 和其他终端仿真器如何从 bash 和其他子进程获取输入以便打印到窗口?终端仿真器是否与 TTY 驱动程序有连接?

0 投票
1 回答
1601 浏览

git - 当我因“通道 0 上的 PTY 分配请求失败”而被锁定时如何获得 shell 访问权限

我在远程外壳上安装了 gitosis。它工作正常。但现在我无法登录交互式 shell。如此所述,似乎 gitosis 禁用了 tty。无论如何我可以把它找回来吗?我没有远程服务器的 root 访问权限。

0 投票
0 回答
211 浏览

c++ - Solaris 中的 TIOCEXCL

我有一个小问题。我使用串行端口,例如 /dev/term/0 并且我需要锁定对该设备的多次访问。为此,我使用以下代码:

一切正常。然后我运行另一个应用程序并尝试打开这个端口,我有错误 EBUSY - 没关系,但此时我的第一个应用程序停止工作。我不能读/写和关闭这个端口,我总是只有一个错误 ENXIO(没有这样的设备或地址)。

我已经在 Linux 和 Mac OS X 中测试了这段代码,并且所有的工作都没有任何问题,但是在 Solaris 中......

我不知道该怎么办。

0 投票
1 回答
48836 浏览

macos - MacOS:/dev/tty.* 和 /dev/cu.* 有什么区别?

每个串行设备在 中出现两次/dev,一次作为 a tty.*,一次作为 a cu.*

设备是什么cu.*?它与tty.*设备有何不同?