我正在尝试自动在macOS上为avrdude选择USB接口。我想选择ls /dev/tty.usb*
的第一个输出。
我正在尝试自动化this。
但是,我似乎无法cut
正常工作,不幸的是,针对类似问题的其他解决方案对于我来说,太抽象了,太复杂了。看来awk
或sed
是正确的方法,但我对这两种方法都不熟悉。
例如,我想从运行中获得/dev/tty.usbmodem002021332
$ ls /dev/tty.usb*
/dev/tty.usbmodem002021332 /dev/tty.usbmodem002021334 /dev/tty.usbserial-DAYO5CGB
答案 0 :(得分:5)
您在输出ls
上的努力就是为什么在shell脚本中依赖ls
从来不是一个好主意的例子。为了获取与模式/dev/tty.usb*
匹配的文件列表,另一种方法是将glob表达式的结果分配给数组:
#!/bin/bash
shopt -s nullglob
list=(/dev/tty.usb*)
...然后获取其第一个元素:
echo "${list[0]}"
有关ls
为何存在问题的更多信息,请参见https://mywiki.wooledge.org/ParsingLs