所以我们有运行Linux的嵌入式Linux板。
我们可以使用telnet连接到该板,然后生成外壳并提供对其的访问。
现在我正在编写一个bash脚本,我想在该shell上运行命令并获取其输出。
例如我的命令类似于通过telnet的以下命令,然后查看是否成功。
test -c /dev/null
当我像下面那样运行时,我总是得到1
作为退出状态
{ test -c /dev/null; sleep 1;} | telnet <board ip addr>
如果可能的话,我不想使用期望,
有什么建议/指针吗?
答案 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