你好,我需要制作一个简单的 bash 脚本,它可以从 grep 输出中制作一个简单的菜单。 这是我到目前为止制作的脚本的 grep 部分:
x=1
ls /dev/ | grep USB | while read -r line ; do
echo "$x DEVICE $line"
x=$(( $x + 1 ))
done
示例输出:
1 DEVICE ttyUSB0
2 DEVICE ttyUSB1
3 DEVICE ttyUSB2
然后用户应该能够从例如案例菜单中选择这些输出之一,然后撤销一些代码。例如:
sudo kermit -C "set line /dev/$line",set carrier-watch off","connect"
其中 $line
是 ttyUSB 设备。
我知道如何制作静态案例菜单。我只是想不出如何从 grep 输出中创建一个动态的。
最佳答案
试试这个:
x=1
for line in /dev/*USB*; do
dev=$(basename "$line")
devices[$x]=$dev
echo "$x DEVICE $dev"
x=$((x+1))
done
read -p "Which device? " devnum
line=$devices[$devnum]
您还可以使用内置的 select
命令:
lines=( $(ls /dev/ | grep USB) )
PS3="Pick a device:"
select devnum in $lines; do
line=$REPLY
break
done
关于linux - grep 输出的 Bash 脚本案例菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21953978/