我想从目标系统获取视频卡信息,无论它是什么。从我当前的目标系统返回两行,我想将每一行视为数组元素。 使用下面的代码,我得到了lspci结果中的每一个字,而不是整行,这是我需要的。有什么想法吗?
myvideos=(`lspci | grep VGA`)
for video in ${myvideos[@]}
do
echo "The $video"
done
代码返回的结果是:
The 00:02.0
The VGA
The compatible
The controller:
The Intel
The Corporation ....
我需要的是:
00:02.0 VGA compatible controller: Intel Corporation
谢谢!
答案 0 :(得分:3)
使用mapfile
将输出捕获到数组中。
mapfile -t myvideos < <(lspci | grep VGA)
对于for循环中的use quotes on the array绝对至关重要
for video in "${myvideos[@]}"; do ...
答案 1 :(得分:0)
在不使用数组的情况下,还有其他方法可以做到这一点:
lspci | grep VGA | xargs -i echo The {}
或
lspci | grep VGA | awk '{print "The " $0}'