我有一个命令在执行时返回我想要存储在bash数组中的数字集。
vihaan@trojan:~/trash$ xdotool search brain
Defaulting to search window name, class, and classname
52428804
50331651
62914564
65011896
48234499
如何将这些值存储在数组中?
答案 0 :(得分:17)
在这个简单的案例中:
array=( $(xdotool search brain) )
如果输出更复杂(例如,行可能包含空格),则可以使用bash builtin mapfile
:
mapfile -t array < <(xdotool search brain)
(help mapfile
了解更多信息)
答案 1 :(得分:4)
declare -a myarr # declare an array
myarr=($(grep -v "Defaulting" $(xdotool search brain) | awk '{printf $1" "}')) # Fill the array with all the numbers from the command line
echo ${myarr[*]} # echo all the elements of the array
OR
echo ${myarr[1]} # First element of the array
答案 2 :(得分:0)
您可以编写另一个命令预期输入并将所述输入放入数组中。因此,您可以将第一个命令的输出传递给toArray
命令。然后使用toArray
输出执行您需要的操作。