ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°Ρ
, Π²ΡΠ²ΠΎΠ΄ $user_names
ΠΎΡΠ΅Π½Ρ ΡΡΠΌΠ½ΡΠΉ. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ${user_names uniq}
ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ:
${execi 60 who | awk '{print $1}' | sort -u | tr '\n' ',' | sed -e 's/,$//' -e 's/,/, /g'}
... ΡΠ΅ΠΌ Ρ ΡΠ΅ΠΉΡΠ°Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ tmux, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π²ΠΎΡΠ΅Π» Π² ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ tty
Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ pts
ΠΈΠ· ΠΎΠΊΠΎΠ½ tmux.
ΠΡΠΎΡΠ»ΠΎ 1 Π³ΠΎΠ΄ 5 ΠΌΠ΅ΡΡΡΠ΅Π². ΠΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ? Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΡΡΡΠ΅ {execi 60}
ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ.
Π― ΡΠ΄Π΅Π»Π°Π» Π²Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Python Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΊΡΠΈΠΏΡ. ΠΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΠΉΡΠ΅ ΡΡΠΎ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ;-)
python -c "from subprocess import check_output;print(', '.join(set([x.split()[0] for x in check_output('who').decode().splitlines()])))"
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅. @ su8 , Ρ Π½Π°Ρ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΡΡΠ΅
{execi 60}
ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ.Π― ΡΠ΄Π΅Π»Π°Π» Π²Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Python Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΊΡΠΈΠΏΡ. ΠΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°ΠΉΡΠ΅ ΡΡΠΎ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ;-)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅. @ su8 , Ρ Π½Π°Ρ