2013-08-21 16 views

答えて

17

mapfile -t array < <(xdotool search brain) 

array=($(xdotool search brain)) 

出力は、(例えば、ラインがそれらにスペースを持っているかもしれません)もっと複雑だったら、あなたは、bashの組み込みmapfileを使用することができますが(詳細はhelp mapfile

0

expects入力を別のコマンドで書き込んで、その入力を配列に入れることができます。したがって、最初のコマンドの出力をtoArrayコマンドにパイプします。次に、toArray出力で必要な作業を行います。この単純なケースで

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 

または

echo ${myarr[1]} # First element of the array 
+0

'grep -v'は無害ですが不要です。その行は' stdout'ではなく 'stderr'に送られます。あなたはCでそれをしてはならないのと同じ理由で 'print'を意味するときawkで' printf'を使うべきではありません:文字列にパーセントがあるかもしれません。 – rici

+0

この回答は非常にうまく機能します、ありがとう! – dmohr

関連する問題