问题描述
我使用一堆使用串行端口连接到Windows计算机的嵌入式设备。我可以运行mode
来找出我刚刚连接(或断开)的COM端口,但是回滚所有输出并查找更改是很麻烦的。
是否有使用命令行的更简单解决方案?
解决方法
我写了下面的小脚本,它运行mode
并对结果进行排序。启动它,它保持打开状态,您可以随时按Enter
刷新列表。很简单,是的,但是您可以根据自己的喜好来量身定制:[*]
#!/bin/bash
#
# List COM ports on one line
#
# SYNOPSIS:
# ListPorts.sh
MODE="/c/Windows/System32/mode.com"
list_ports() {
PORTS_W=$(${MODE} | grep "Status for device COM" | awk '{ print $4 }' | sed s/:// | sort -V )
echo ${PORTS_W}
}
while [ 1 ] ; do
echo -n "Available COM ports are "
list_ports
echo -n "Hit [Enter] to refesh the list or ^C to quit: "
read
done
[*]留给读者练习:只需使用sed
来修剪字符串,而不要使用awk ... | sed ...
示例输出:
Available COM ports are COM4 COM9 COM18 COM19
Hit [Enter] to refesh the list or ^C to quit: