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.