linux - 是否可以在 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>
如果可能的话,我不想使用期望,
任何建议/指针?
解决方案
使用 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
推荐阅读
- java - 处理多种可能性的 Java 正则表达式
- google-chrome-extension - 无法使用 localhost 作为 iframe 的 src
- login - 为什么要将 2FA 的一次性密码分开作为另一个步骤?
- dns - 如何减少刷新 Terraform 状态的时间?
- c# - 如何在VB中从类中返回一个值
- openpyxl - Openpyxl:在工作表级别在公式和计算值之间切换?
- ios - 如何加载图像并根据它的方向 exif 数据旋转它并使用 UIImageOrientationUp exif 数据保存它
- python - 行没有被正确删除
- python - python networkx:如何获得随机路径?
- amazon-web-services - 公共子网不在一个 VPC 中创建