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: