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.