是否可以在telnet上运行的shell上运行bash命令?

时间:2020-02-07 23:18:14

标签: linux bash telnet

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

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

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

test -c /dev/null

当我像下面那样运行时,我总是得到1作为退出状态

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

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

有什么建议/指针吗?

1 个答案:

答案 0 :(得分:1)

使用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