将数据传输到需要 TTY(终端)的 Linux 程序
- 2024-11-08 09:04:00
- admin 原创
- 43
问题描述:
我在 Linux 中有一个程序,如果其 stdin/stdout 不是 TTY(终端设备),它将拒绝运行。是否有一个易于使用的工具可以创建 PTY,使用新创建的 TTY 启动程序,并将所有数据复制到 stdin/stdout 上?
用例不是交互式的,而是脚本。我正在寻找最轻量级的解决方案,最好不创建 TCP 连接,并且不需要安装太多其他工具和库。
解决方案 1:
unbuffer
,作为 expect 的一部分(sudo apt-get install expect-dev
在 Ubuntu Lucid 上),可以欺骗程序让它认为它已经连接到 TTY。
$ tty
/dev/pts/3
$ echo | tty
not a tty
$ echo | unbuffer tty
/dev/pts/11
解决方案 2:
你可以使用socat
以下方法:echo your stdin strings | socat EXEC:"your_program",pty STDIO >/stdout_file
例如bash
:echo ls | socat EXEC:'bash',pty STDIO >/tmp/ls_out
或者如此处所述,对于使用以下命令运行的程序docker
:
# Run the docker task, here bash, in background
docker run -it --rm --name test ubuntu &
# Send "ls -la" to the bash running inside docker
echo 'ls -la' | socat EXEC:'docker attach test',pty STDIN
# Show the result
docker logs test
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD