如何通过脚本退出微型录像带



我有一个微型脚本,该脚本通过串行发送一些命令,并期望某些内容(有效),但我在退出微型屏幕时遇到了麻烦。

下面是微型脚本:

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

最新更新