linux minicom 自动化对串口下命令

时间:2021-09-08 09:31:02

#!/bin/csh

chk_ttyUSB0:
test -e /dev/ttyUSB0            #先判断串口是否有被识别到
if ( $? != 0 ) then
   echo "/dev/ttyUSB0 not found"
   sleep 5
   goto chk_ttyUSB0
endif

\rm /var/lock/LCK* 2>/dev/null      #有时会遇到串口异常被会锁住,把这个文件删除才可以继续跑
\rm log 2>/dev/null
sh set_uboot_var.sh
gnome-terminal -x minicom -S serial.sh -C log            #gnome-terminal打开另一个terminal运行这个脚本

wait:                             #抓特定结束字符, 一直循环判定串口脚本运行完成才往下跑
grep *** log
if ( $? != 0 ) then
clear
echo "Wait minicom test end..."
sleep 5
goto wait             #cshell用goto要小心,写错标签"wait:"的话会跳出主脚本
endif

********************************************************************

"serial.sh"内容大概如下:

send "immroot"          #发送字符串,如一开始需要输入账号密码

send ""
expect {
"[/] >" break                     #等待出现"[/] >"这个字符才往下跑
}

send "123456"              #发送字符串

expect {
"[/] >" break 
}

send "$(var)"              #也可以发送在主脚本定义好的一些变量

......

! killall -9 minicom        #自己把自己干掉

exit 

********************************************************************