我正在尝试访问数组中常规“猫”输出的一些数值。
如果我这样做:cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
我得到:51000 102000 204000 312000 ...
所以我编写如下脚本来获取数组中的所有元素,并尝试获取元素的数量。
vAvailableFrequencies=$(sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies)
nAvailableFrequencies=${#vAvailableFrequencies[@]}
问题是 nAvailableFrequencies
等于数组中字符的数量,而不是元素的数量。
我们的想法是能够访问每个元素:
for (( i=0;i<$nAvailableFrequencies;i++)); do
element=${vAvailableFrequencies[$i]
done
这在 bash 中是否可行,而无需执行诸如顺序读取之类的操作并将元素一个一个地插入数组中?
最佳答案
你可以像这样使用数组:
arr=($(</sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies))
nAvailableFrequencies=${#arrr}
-
$(<file)
在(...)
时读取并输出文件内容创建一个数组。
关于arrays - 访问 'cat' 输出作为 'bash' 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32071879/