系统相关
首页 > 系统相关> > Linux Shell从用户输入获取设备ID

Linux Shell从用户输入获取设备ID

作者:互联网

我正在为需要在配置中从lsusb获得设备ID的程序的安装脚本工作,因此我正在考虑执行以下操作:

$usblist=(lsusb)
#put the list into a array for each line.
#use the array to give the user a selection list usinging whiptail.
#from that line strip out the device id and vender id from the selected line.

抱歉,我的代码还没走很远,但是我对此一无所知,不知道该怎么做.请有人帮忙.我对shell脚本很陌生

解决方法:

使用鞭尾选择USB设备

要准备鞭尾或对话框命令,并以USB ID作为TAG和描述作为项目,您可以创建一个小子外壳:

read usbdev < <(
    declare -a array=()
    while read foo{,,,,} id dsc;do
        array+=($id "$dsc")
      done < <(lsusb)
    whiptail --menu 'Select USB device' 20 76 12 "${array[@]}" 2>&1 >/dev/tty
)

注意:

> $array变量将不在子shell范围之外.
>由于$array由($id“ $dsc”)填充,并由“ ${array [@]}”使用,因此描述中的空格不会破坏项目列表.
>语法读取foo {,,} id dsc将按行,空格分隔读取lsub的输出,删除第5个单词,将第6个单词分配给id,并将行的其余部分分配给dsc.

这可能会呈现出类似以下内容:

enter image description here

然后

echo $usbdev 
1d6b:0002

您可以在How do I prompt for Yes/No/Cancel input in a Linux shell script?使用鞭尾,对话和其他方式找到更多示例
USB removable storage selector: USBKeyChooser

标签:shell,lsusb,linux
来源: https://codeday.me/bug/20191025/1926376.html