[英]Bash script case menu from output of grep
您好,我需要制作一個簡單的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.