MAC OS X 使用screen命令连接tty串口脚本

使用效果:

$ serial
1: /dev/tty.usbserial-FTUI0LOHA
2: /dev/tty.usbserial-FTUI0LOHB
Choose serial device file > 

连设备名称都不用写了。。直接写12就能连到想要的设备上。。
神马都不写直接回车默认连到1上。
退出screen的方法:Control + a 再 k
如果没有退出screen直接就把终端窗口关掉了,下次重新连接的时候会连不上,此时使用screen -ls命令查看后台存在的screen会话,如下

 $ screen -ls
There is a screen on:
	14348.ttys008.medmgmt-115	(Attached)
1 Socket in /var/folders/76/dfy6qvx93gv28ghfjgwfl9jm0000gn/T/.screen.

再使用screen -r 14348就能恢复后台的screen会话

脚本如下

$ cat /usr/bin/serial
#!/bin/bash
portname="/dev/tty.SLAB_USBtoUART"
preset="$1"
baudrate=115200

screen_start()
{
  screen $portname $baudrate
}


if [ -n "$preset" ];then
  if [ "$preset" == "bst" ];then
    portname="/dev/tty.usbserial-A106HG1J"
    screen_start
  elif [ "$preset" == "gw" ];then
    portname="/dev/tty.usbserial-A106HG1J"
    baudrate=57600
    screen_start
  elif [ "$preset" == "macro" ];then
    screen_start
  else
    echo "Preset not found.\n"
  fi
  exit 0
fi

array=(`ls /dev/tty.* | grep -v "/dev/tty.SOC" | grep -v "/dev/tty.MALS" | grep -v "/dev/tty.Bluetooth-Incoming-Port"`)

len=${#array[*]}
i=0

while [ $i -lt $len ]; do
echo "$[$i+1]: ${array[$i]}"
let i++
done

echo -n "Choose serial device file > "
read selected
#echo "PORT : $selected"

if [ -z "$selected" ]
then
 selected=1
fi

if echo $selected | grep "^[0-9]*$" >&1
then
 if ((  $selected-1 > $len  ))
 then
   exit
 fi
  portname=${array[$selected-1]}
  echo "1 : 115200 (default)"
  echo "2 : 9600"
  echo "3 : 57600"
  echo -n "Choose baudrate > "
  read baudrate
  if [ -z "$baudrate" ]; then
    baudrate=115200
  elif [ "$baudrate" == "1" ]; then
    baudrate=115200
  elif [ "$baudrate" == "2" ]; then
    baudrate=9600
  elif [ "$baudrate" == "3" ]; then
    baudrate=57600
  fi
  screen_start
fi

参考:https://blog.csdn.net/delicioustian/article/details/7193989

猜你喜欢

转载自blog.csdn.net/huyuan7494/article/details/82381142