我有一个微型脚本,该脚本通过串行发送一些命令,并期望某些内容(有效),但我在退出微型屏幕时遇到了麻烦。
下面是微型脚本:
success1:
print nSuccessfully received running!
send "exit"
exit 0
success2:
print nSuccessfully received degrading!
! killall -9 minicom
exit
i使用的是! killall -9 minicom
,它在其文档中建议使用,但是不幸的是,当在Jenkins上运行脚本时,由于退出代码137(另一个过程发送了一个信号9),因此失败了。但是,这确实不会成功地退出微观。
另一方面,"发送"退出"'只是从设备上登录,而不会退出微型。
如何退出微型录像带并收到0出口代码?
您需要用三个字符喂食<stdin>
:<ctrl-A>x<enter>
- 准备文件 sevase.txt 使用vi来写 ^ax ^m
- 启动微型脚本
/bin/rm -f capture.txt; ( minicom -D /dev/ttyUSB0 -S test_minicom.macro -C capture.txt < escape.txt ) ; cat capture.txt
要建立迭戈共享的内容,如果您只需要退出微型录像,而无需错误,并且不在乎捕获出口代码,则像迭戈所描述的那样构建escape.txt
,然后您只需要运行:
( minicom -D /dev/ttyUSB0 -S test_minicom.macro -C capture.txt < escape.txt )
事实证明,这对于像Ansible这样的自动配置非常有帮助!
作为创建Escape.txt文件的替代方案,您可以使用Echo发送出口序列。
在上述答案上构建:
$ /bin/rm -f capture.txt; ( echo -ne "x01xr" ) | minicom -D /dev/ttyUSB0 -S test_minicom.macro -C capture.txt; cat capture.txt
稍微分解回声命令,
-
-n
删除默认线路馈线n
-
-e
告诉Echo解释逃生序列 -
x01
是 ^a(起始开始)
的逃生序列 -
x
告诉微型降低到退出 -
r
发送A ^m返回
来自Echo的HEX输出:
$ echo -ne "x01xr" | od -A x -t x1a -v
000000 01 78 0d
soh x cr
000003
注意:如果您只想发送一些文本,而不需要完整的微型脚本,则可以添加额外的回声。可能不需要睡眠,具体取决于命令运行,如果您关心Capture.txt ...
中的输出$ /bin/rm -f capture.txt; ( echo "poweroff"; sleep 1; echo -ne "x01xr" ) | minicom -D /dev/ttyUSB0 -C capture.txt; cat capture.txt