arr=($(screen -ls | egrep -o '\t.+\t' | sort -n))
Panne:
arr=($(...))
: Affecte une série de valeurs séparées par des espaces à un tableau indexé, par exemple , arr=($(1 2 three 4))
définit $arr[0]=1
, $arr[1]=2
, $arr[2]=three
, et $arr[3]=4
.
screen -ls
: Fonction de base dont la sortie doit être filtrée. Cela génère les lignes suivantes (exemple):
There are screens on:
79481.ttys000.macbook (Detached)
80513.ttys004.macbook (Attached)
79513.ttys002.macbook (Detached)
3 Sockets in /var/folders/ht/0ty_c8mx16v69csh949g3rvr0000gn/T/.screen.
Notez que les espaces sur les lignes contenant les détails de la session sont des colonnes délimitées par des tabulations.
egrep -o '\t.+\t'
: Sélectionne uniquement la sortie sur chaque ligne comprise entre deux caractères de tabulation (inclut les tabulations). Cela isole les pid.tty.host
chaînes.
sort -n
: Triez chaque ligne par ordre numérique, du plus petit pid au plus grand pid.
Le tableau résultant contient les pid.tty.host
identifiants de chaque session d'écran (à la fois attachés et déconnectés), avec $arr[0]
la session qui a commencé en premier, jusqu'à $arr[n-1]
la n- session, qui a commencé le plus récemment.