使用效果:
$ 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.youkuaiyun.com/delicioustian/article/details/7193989