首页 > 解决方案 > 是否可以在 telnet 上运行的 shell 上运行 bash 命令?

问题描述

所以我们有运行 Linux 的嵌入式 Linux 板。
我们可以使用 telnet 连接到该板,然后生成 shell 并提供对它的访问权限。

现在我正在编写一个 bash 脚本,我想在该 shell 上运行命令并获取其输出。

例如,我的命令类似于以下通过 telnet 的命令,看看是否成功。

test -c /dev/null

当我像下面这样运行它时,我总是得到1退出状态

{ test -c /dev/null; sleep 1;} | telnet <board ip addr>

如果可能的话,我不想使用期望,

任何建议/指针?

标签: linuxbashtelnet

解决方案


使用 SSH 可以轻而易举地完成:

ssh yourhost 'test -c /dev/null'

在 TCP 端口上使用一个简单的 shell,您可以使用以下方法:

echo 'test -c /dev/null; echo $?' | nc -q 1 yourhost 1234

telnet相反,脚本是出了名的时间敏感和棘手,所以既然你不想用 健壮地做到这一点expect,你可以尝试把它弄混:

{ sleep 1; echo 'test -c /dev/null; echo $?'; sleep 1; } | telnet somehost

推荐阅读