dúvida, shell script (bash)
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.
Reply to: