我正在为需要在配置中从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.
这可能会呈现出类似以下内容:
然后
echo $usbdev
1d6b:0002
您可以在How do I prompt for Yes/No/Cancel input in a Linux shell script?使用鞭尾,对话和其他方式找到更多示例
和USB removable storage selector: USBKeyChooser