[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dúvida, shell script (bash)



#!/bin/bash
# Script para verificar se 1 até 50 usuários estão logados no sistema
# Este script gera um log em /home/fo0x/teste/log_script1

#variáveis
users=/home/fo0x/teste/users
lixo=/home/fo0x/teste/lixo
log=/home/fo0x/teste/log_script1
n=1
x=$

#usuários do sistema
echo "`cut -f1 -d : /etc/passwd | sort | more`" > $users

#$*
while [ $n -le 50 ]
do
{ if cat $users | sed -n -e $n\p > $lixo 2> $lixo
 then
  { if who | sed -n -e $n\p > $lixo
     then
      echo "$(awk '{print $1}') está logado no sistema"
      echo "$(awk '{print $1}') está logado no
sistema:::`date`:::`whoami`" >> $log
     else
      echo "$(awk '{print $1}') não está logado no sistema"
      echo "$(awk '{print $1}') não está logado no
sistema:::`date`:::`whoami`" >> $log
    fi }
 else
  echo "" > $lixo
fi }
n=`expr $n + 1`
done



se nao estou enferrujado, talvez isso ajude


On 8/13/07, Gabriel Muricy <gabrielmp2@gmail.com> wrote:
> Oi pessoal.
> estou com um probleminha em um script que eu fiz.
>
> --------------------------------------------------------Script------(aaa.sh)------------------------------------------------------
> #!/bin/bash
> # Script para verificar se 1 até 50 usuários estão logados no sistema
> # Este script gera um log em /home/fo0x/teste/log_script1
>
> #variáveis
> users=/home/fo0x/teste/users
> lixo=/home/fo0x/teste/lixo
> log=/home/fo0x/teste/log_script1
> n=1
> x=$
>
> #usuários do sistema
>  echo "`cut -f1 -d : /etc/passwd | sort | more`" > $users
>
> #$*
> while [ $n -le 50 ]
> do
> { if cat $users | grep $x$n > $lixo 2> $lixo
>  then
>   { if who | grep $x$n > $lixo
>      then
>       echo "$x$n está logado no sistema"
>       echo "$x$n está logado no sistema:::`date`:::`whoami`" >> $log
>      else
>       echo "$x$n não está logado no sistema"
>       echo "$x$n não está logado no sistema:::`date`:::`whoami`" >> $log
>     fi }
>  else
>   echo "" > $lixo
> fi }
> n=`expr $n + 1`
> done
> ------------------------------------------------------------------fim
> do
> script--------------------------------------------------------------
> bom, isso é script para verificar se usuários (no máx. 50) estão logados no
> sistema e gravar um log dos users logados ou não, a data e quem executou o
> script.
> tipo, isso é uma pesquisa.
> ex: ./aaa.sh fo0x gabriel paulo roberto
> ira procurar pelos usuários: fo0x, gabriel, paulo, roberto. Se eles fizerem
> parte do sistema eles vão ser citados no log, dizendo se estão logados ou
> não.
>
> problema: $x$n
> quando n=1 : $x$n => $1
> quando n=2 : $x$n => $2
> e assim por diante, até chegar em 50.
> porem esse $1, $2, não estão sendo reconhecidos como o parametro 1,
> parametro 2, ...
> o $1, $2, ...., está saindo como caractere e não como o parametro 1,
> parametro 2, ...
>  no exemplo: parametro 1 => fo0x  |  parametro 2 => gabriel  | (...)
> so que ao inves do $1 indicar o parametro 1, que é fo0x, ele sai no comando
> como caractere normal $1, e não como o caractere especial $1, que indica o
> primeiro parametro.
>
> alguem ai pode me ajudar ?
>
> vlw, gabriel.
>
>


-- 
"P-p-por hoje é só p-p-pessoal" (Gaguinho)
[]s

Mário Felipe Rinaldi
Gmail/Gtalk: lalo.rinaldi@gmail.com
MSN: lalorinaldi@gmail.com
Site: http://rinaldi-rinaldi.info

/* Isto é um comentário e você não pode ve-lo */

------------ [ END OF TRANSMISSION ] ------------



Reply to: