Re: dúvida, shell script (bash)

2007-08-13 Por tôpico Mario Felipe Rinaldi
#!/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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
MSN: [EMAIL PROTECTED]
Site: http://rinaldi-rinaldi.info

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

 [ END OF TRANSMISSION ] 



dúvida, shell script (bash)

2007-08-12 Por tôpico Gabriel Muricy
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.


Re: [off-topic] Dúvida shell script: extração de colunas

2003-07-22 Por tôpico Douglas A. Augusto
No dia 22/07/2003 às 14:02,
Eduardo Goncalves <[EMAIL PROTECTED]> escreveu:

>   Use o cut. 
> cut -d "" -f "" arquivo

Era isso o que estava procurando, obrigado a todos que responderam.

-- 
Douglas Augusto



Re: [off-topic] Dúvida shell script: extra ção de colunas

2003-07-22 Por tôpico Michelle Ribeiro
Em Tue, 22 Jul 2003 13:45:52 -0300
"Douglas A. Augusto" <[EMAIL PROTECTED]> escreveu:

> Olá,
> 
> Tenho uma saída (cat, por exemplo) com 'n' colunas separadas por espaço, porém
> quero apenas a coluna 'm' (m separadas por algum outro caractere 'c'?

Dá uma olhada na man do comando cutt. Pode te ajudar.



-- 
--
Michelle Ribeiro

Debian GNU/Linux - Your next Linux distribution
http://www.debian.org/ || http://www.spi-inc.org/



Re: [off-topic] Dúvida shell script: extração de colunas

2003-07-22 Por tôpico Eduardo Goncalves
On Tue, 22 Jul 2003 13:45:52 -0300
"Douglas A. Augusto" <[EMAIL PROTECTED]> wrote:

> Olá,
> 
> Tenho uma saída (cat, por exemplo) com 'n' colunas separadas por espaço, porém
> quero apenas a coluna 'm' (m separadas por algum outro caractere 'c'?

Use o cut. 
cut -d "" -f "" arquivo

[]'s
Eduardo



[off-topic] Dúvida shell script: extração de colunas

2003-07-22 Por tôpico Douglas A. Augusto
Olá,

Tenho uma saída (cat, por exemplo) com 'n' colunas separadas por espaço, porém
quero apenas a coluna 'm' (m

Re: Dúvida Shell Script

2003-05-01 Por tôpico Leandro Guimarães Faria Corsetti Dutra
On Wed, 30 Apr 2003 16:23:38 -0300, Rubens Saraiva Nogueira wrote:

> 1
> ab
> ZZ
> 
> Preciso retornar:
> 1abZZ

man re_syntax


-- 
  _   Leandro Guimarães Faria Corsetti Dutra+41 (21) 648 11 34
 / \  Lausanne, Vaud, Suisse+41 (78) 778 11 34
 \ /  Brasil+55 (11) 5686 2219
 / \  http://geocities.yahoo.com.br/lgcdutra/



Re: Dúvida Shell Script

2003-05-01 Por tôpico Rubens Saraiva
Wesley, Felipe e amigos da lista,

Obrigado pela atenção dispensada e pelo código com as soluções.
O problema é que não sei se vou poder usar C ou PHP por normas do projetos
entende?
Se tiverem a solução em script shell / bash fico muito grato.

Obrigado.
Rubens Saraiva

- Original Message -
From: Wesley Alves de Oliveira/MPGO <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>;

Sent: Wednesday, April 30, 2003 5:45 PM
Subject: Re: Dúvida Shell Script


Existe uma variável externa que você deve setá-la para depois fazer isso,
mas em C fica mais fácil tipo:

int main(int argc, char *argv[])
{
FILE *arquivo;
char c, buffer[TAMANHO]; /* Segunda variavel opcional, pois se
quizer que apenas mostre na tela não é necessário
Estou implementando a função para
que você não precise de buffer  */

if((arquivo = fopen("path do arquivo","r"))==NULL){
puts("Erro ao ler arquivo ou você não tem permissão de
leitura...");
return(1);
}

while((c=getc(arquivo))!=EOF){
if(c == 'g'){  /* Observando seu texto aí em baixo,
testaremos primeiro a letra g e depois sempre a suasubsequente */
c = getc(arquivo);
if(c ==
){ 
/* Agora testamos a subsequente se for, 
pronto imprima na tela o conteúdo entre elas */
while((c = getc(arquivo)) != '<') { 
printf("%c",c); }
}
}
}
fclose(arquivo);
return(0);
}

Se você não tiver dentro das tags do html uma coicidência da letra g e 
posteriormente a o > ele vai imprimir corretamente, quer dizer ainda não 
testei acho que vai funcionar.

Se quizer armazenar no lugar de printf("%c",c) coloca buffer[i] = c; 
declare uma variável static int i; no inicio do arquivo, e de
ntro do corpo
do laço while de impressão coloque o seguinte:
while((c = getc(arquivo))!='<'){ i = 0; buffer[i] = c; i++; }

Se o código não lhe interessar ou você preferir em script, hoje a noite eu
olho lá em casa e lhe mostro o código em Script Bash como seria, mas só
vou lhe postar amanhã pois a internet é mais barata.

Pessoal,

Como fazer para pegar dados de um arquivo especificando caracteres que
vem antes e depois??
Exemplo:

Tenho um arquivo texto com:
1
ab
ZZ

Preciso retornar:
1abZZ

Ou seja, preciso todos os dados de "tag".

Obrigado.
Rubens



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact
[EMAIL PROTECTED]





--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact
[EMAIL PROTECTED]





Re: Dúvida Shell Script

2003-04-30 Por tôpico Felipe de Fraga Roman
Rubens,
   Fiz um script em php ha algum tempo atraz que faz exatamente isso, pega
tudo que esta fora das tags <>.

fiz essa função para utilizar em um script que pegava html do oracle e
passava para html normal muito mais limpo


abaixo a função
// funcao para remover as tags
function remove($tag) {
if (stristr($tag,"

Re: Dúvida Shell Script

2003-04-30 Por tôpico Wesley Alves de Oliveira/MPGO
Existe uma variável externa que você deve setá-la para depois fazer isso, 
mas em C fica mais fácil tipo:

int main(int argc, char *argv[])
{
FILE *arquivo;
char c, buffer[TAMANHO]; /* Segunda variavel opcional, pois se 
quizer que apenas mostre na tela não é necessário
Estou implementando a função para 
que você não precise de buffer  */

if((arquivo = fopen("path do arquivo","r"))==NULL){
puts("Erro ao ler arquivo ou você não tem permissão de 
leitura...");
return(1);
}

while((c=getc(arquivo))!=EOF){
if(c == 'g'){  /* Observando seu texto aí em baixo, 
testaremos primeiro a letra g e depois sempre a suasubsequente */
c = getc(arquivo);
if(c == '>'){ 
/* Agora testamos a subsequente se for, 
pronto imprima na tela o conteúdo entre elas */
while((c = getc(arquivo)) != '<') { 
printf("%c",c); }
}
}
}
fclose(arquivo);
return(0);
}

Se você não tiver dentro das tags do html uma coicidência da letra g e 
posteriormente a o > ele vai imprimir corretamente, quer dizer ainda não 
testei acho que vai funcionar.

Se quizer armazenar no lugar de printf("%c",c) coloca buffer[i] = c; 
declare uma variável static int i; no inicio do arquivo, e dentro do corpo 
do laço while de impressão coloque o seguinte:
while((c = getc(arquivo))!='<'){ i = 0; buffer[i] = c; i++; }

Se o código não lhe interessar ou você preferir em script, hoje a noite eu 
olho lá em casa e lhe mostro o código em Script Bash como seria, mas só 
vou lhe postar amanhã pois a internet é mais barata.

Pessoal,

Como fazer para pegar dados de um arquivo especificando caracteres que
vem antes e depois??
Exemplo:

Tenho um arquivo texto com: 
1
ab
ZZ

Preciso retornar:
1abZZ

Ou seja, preciso todos os dados de "tag".

Obrigado.
Rubens



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact 
[EMAIL PROTECTED]






Dúvida Shell Script

2003-04-30 Por tôpico Rubens Saraiva Nogueira
Pessoal,

Como fazer para pegar dados de um arquivo especificando caracteres que
vem antes e depois??
Exemplo:

Tenho um arquivo texto com: 
1
ab
ZZ

Preciso retornar:
1abZZ

Ou seja, preciso todos os dados de "tag".

Obrigado.
Rubens