Ich versuche etwas Einfaches zu tun, bin mir aber nicht sicher, wie ich mein Ziel hier erreichen soll.
Ich versuche, die Werte USER, TTY und FROM zu extrahieren, die vom wBefehl auf der Konsole angegeben werden. In bash versuche ich, diese Ausgabe zu übernehmen und diese Werte in ein mehrdimensionales Array (oder nur ein Array mit einem Leerzeichen) zu übertragen.
#!/bin/bash
w|awk '{if(NR > 2) print $1,$2,$3}' | while read line
do
USERS+=("$line")
echo ${#USERS[@]}
done
echo ${#USERS[@]}
Ich habe den Weg gefunden, die Werte zeilenweise in einem einzelnen Array einzulesen, aber ich kann den USERS-Array-Wert scheinbar nicht aus dem Bereich der while-Schleife herausholen. Es gibt die Werte 1,2,3,4 und dann 0 nach der Schleife aus. Jedes Beispiel, das ich lese, verwendet die Variable außerhalb des Gültigkeitsbereichs vollkommen in Ordnung, aber ich kann es nicht scheinen.
while read col1 col2 col3 _; do ...; done < <(w)