scrivere uno script per spedire tutti gli utenti online


1

Sto prendendo la mia prima lezione di Linux e stiamo scrivendo script. Attualmente sto provando a scrivere uno script che guarderà chi è online e quindi invii loro una mail

Questa è una classe linux entry-level quindi niente da impazzire, e io sono un vecchio che frequenta questa classe. Non uso i computer da quando ho avuto il mio TRS-80 e ho imparato di base.

Quello che mi chiedo è come immagazzino i nomi degli utenti in una sorta di array o variabile. Penso di dover iniziare con una variabile contando come piace agli utenti

numUsers =users | wc -w

e quindi penso di aver bisogno di usare quelle informazioni per creare una variabile che farà grep tutti i nomi.

USERNAME = `who | awk '{print $ 1}' | ordina | uniq

funziona se è online solo una persona. Ma non sono sicuro di come / cosa scrivere se aumentano le persone.

Qualsiasi aiuto?

Risposte:


0

@DamianOgre: penso che tu ci stia pensando troppo. Non è necessario contarli, basta scorrere i nomi restituiti.

who | cut -d " " -f 1| sort -u |  while read user
do
  echo "Hi there!" | mail $user
done

PS: I LOVE awk, ma qui tagliare andrà bene. :) PPS: alcuni comandi potrebbero differire nella tua configurazione, potrebbe essere mailx, mutt, ...


E se hai davvero bisogno di contarli, lascia cadere x=0a all'inizio e a (( x += 1 ))nel ciclo while-do.
bgStack15
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.