簡體   English   中英

來自grep輸出的Bash腳本案例菜單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM