variável não esta sendo recebida

1. variável não esta sendo recebida

allan
oblinez

(usa CentOS)

Enviado em 18/01/2019 - 16:53h

nao tenho muita experiencia com shell entao nao sei porque a variavel nao esta sendo recebida

if [ $(ps aux | grep -v grep | grep -c server1) -lt 1 ]; then
s1="server1 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -lt 1 ]; then
s2="server2 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -lt 1 ]; then
s3="server3 finalizado com sucesso!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s1\n $s2\n $s3" 2> >(grep -v 'GtkDialog' >&2)
else
if [ $(ps aux | grep -v grep | grep -c server1) -ge 1 ]; then
s11="server1 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -ge 1 ]; then
s22="server2 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -ge 1 ]; then
s33="Server3 está ligado!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s33\n $s22\n $s11" 2> >(grep -v 'GtkDialog' >&2)



  


2. Re: variável não esta sendo recebida

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 18/01/2019 - 18:30h


oblinez escreveu:

nao tenho muita experiencia com shell entao nao sei porque a variavel nao esta sendo recebida

if [ $(ps aux | grep -v grep | grep -c server1) -lt 1 ]; then
s1="server1 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -lt 1 ]; then
s2="server2 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -lt 1 ]; then
s3="server3 finalizado com sucesso!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s1\n $s2\n $s3" 2> >(grep -v 'GtkDialog' >&2)
else
if [ $(ps aux | grep -v grep | grep -c server1) -ge 1 ]; then
s11="server1 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -ge 1 ]; then
s22="server2 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -ge 1 ]; then
s33="Server3 está ligado!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s33\n $s22\n $s11" 2> >(grep -v 'GtkDialog' >&2)


Não tem como a gente testar esses if's ... vc já testou todos isoladamente ???

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




3. Re: variável não esta sendo recebida

allan
oblinez

(usa CentOS)

Enviado em 18/01/2019 - 18:43h

Mauriciodez escreveu:

Não tem como a gente testar esses if's ... vc já testou todos isoladamente ???

------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------



as condições estão sim funcionando


4. Re: variável não esta sendo recebida

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 18/01/2019 - 19:36h

tenta assim

zenity --width 400 --height 160 --title="Fechar Servers" --info --text  "$s33\n$s22\n$s11" 



------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




5. Re: variável não esta sendo recebida

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/01/2019 - 21:30h


oblinez escreveu:

nao tenho muita experiencia com shell entao nao sei porque a variavel nao esta sendo recebida

if [ $(ps aux | grep -v grep | grep -c server1) -lt 1 ]; then
s1="server1 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -lt 1 ]; then
s2="server2 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -lt 1 ]; then
s3="server3 finalizado com sucesso!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s1\n $s2\n $s3" 2> >(grep -v 'GtkDialog' >&2)
else
if [ $(ps aux | grep -v grep | grep -c server1) -ge 1 ]; then
s11="server1 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -ge 1 ]; then
s22="server2 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -ge 1 ]; then
s33="Server3 está ligado!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s33\n $s22\n $s11" 2> >(grep -v 'GtkDialog' >&2)


Boa noite Oblinez.
A SINTAXE do condicional está um tanto quanto estranha, veja:
if condição1;then
Gera var 1
fi
if condição2;then
Gera var 2
fi
if condição3;then
Gera var 3
fi
else . . .
if condição11;then
Gera var 11
fi
if condição22;then
Gera var 22
fi
if condição33;then
Gera var 33
fi

Normalmente, utilizo:
if condição
Comandos . . .
else
Comandos
fi
Montei um SCRIPT, para verificar o Estado dos Servidores e mostrar numa Janela com o zenite.
Utilizei o comando "pgrep", é uma mistura do "ps com o grep", mais pratico....

Segue:
#!/bin/bash
X=(server1 server2 server3)
for SERVER in ${X[*]};do
[[ $(pgrep -x -d: "$SERVER") ]] && eval ${SERVER}="ON" || eval ${SERVER}="OFF"
done
zenity --width 200 --height 100 --title="Estado dos SERVIDORES" --info --text="$(for ((x=0;x<${#X[@]};x++));do echo "${X[$x]}: ${!X[$x]}"; done)" 2>/dev/null

Att;
Marcelo Oliver


6. Re: variável não esta sendo recebida

allan
oblinez

(usa CentOS)

Enviado em 20/01/2019 - 00:45h

msoliver escreveu:


oblinez escreveu:

nao tenho muita experiencia com shell entao nao sei porque a variavel nao esta sendo recebida

if [ $(ps aux | grep -v grep | grep -c server1) -lt 1 ]; then
s1="server1 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -lt 1 ]; then
s2="server2 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -lt 1 ]; then
s3="server3 finalizado com sucesso!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s1\n $s2\n $s3" 2> >(grep -v 'GtkDialog' >&2)
else
if [ $(ps aux | grep -v grep | grep -c server1) -ge 1 ]; then
s11="server1 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -ge 1 ]; then
s22="server2 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -ge 1 ]; then
s33="Server3 está ligado!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s33\n $s22\n $s11" 2> >(grep -v 'GtkDialog' >&2)


Boa noite Oblinez.
A SINTAXE do condicional está um tanto quanto estranha, veja:
if condição1;then
Gera var 1
fi
if condição2;then
Gera var 2
fi
if condição3;then
Gera var 3
fi
else . . .
if condição11;then
Gera var 11
fi
if condição22;then
Gera var 22
fi
if condição33;then
Gera var 33
fi

Normalmente, utilizo:
if condição
Comandos . . .
else
Comandos
fi
Montei um SCRIPT, para verificar o Estado dos Servidores e mostrar numa Janela com o zenite.
Utilizei o comando "pgrep", é uma mistura do "ps com o grep", mais pratico....

Segue:
#!/bin/bash
X=(server1 server2 server3)
for SERVER in ${X[*]};do
[[ $(pgrep -x -d: "$SERVER") ]] && eval ${SERVER}="ON" || eval ${SERVER}="OFF"
done
zenity --width 200 --height 100 --title="Estado dos SERVIDORES" --info --text="$(for ((x=0;x<${#X[@]};x++));do echo "${X[$x]}: ${!X[$x]}"; done)" 2>/dev/null

Att;
Marcelo Oliver


obrigado pela resposta, aqui esta o resultado:
X=(login-server char-server map-server)
for SERVER in ${X[*]};do
>>> linha 69 [[ $(pgrep -x -d: "$SERVER") ]] && eval ${SERVER}="ON" || eval ${SERVER}="OFF"
done
zenity --width 200 --height 100 --title="Estado dos SERVIDORES" --info --text="$(for ((x=0;x<${#X[@]};x++));do echo "${X[$x]}: ${!X[$x]}"; done)" 2> >(grep -v 'GtkDialog' >&2)

quando o server esta off:
https://imgur.com/a/vaVkcLz
e quando esta on:
https://imgur.com/a/pWmB7zq


7. Re: variável não esta sendo recebida

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 21/01/2019 - 15:32h


oblinez escreveu:

msoliver escreveu:


oblinez escreveu:

nao tenho muita experiencia com shell entao nao sei porque a variavel nao esta sendo recebida

if [ $(ps aux | grep -v grep | grep -c server1) -lt 1 ]; then
s1="server1 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -lt 1 ]; then
s2="server2 finalizado com sucesso!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -lt 1 ]; then
s3="server3 finalizado com sucesso!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s1\n $s2\n $s3" 2> >(grep -v 'GtkDialog' >&2)
else
if [ $(ps aux | grep -v grep | grep -c server1) -ge 1 ]; then
s11="server1 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server2) -ge 1 ]; then
s22="server2 está ligado!"
fi
if [ $(ps aux | grep -v grep | grep -c server3) -ge 1 ]; then
s33="Server3 está ligado!"
fi
zenity --width 400 --height 160 --title="Fechar Servers" --info --text="$s33\n $s22\n $s11" 2> >(grep -v 'GtkDialog' >&2)


Boa noite Oblinez.
A SINTAXE do condicional está um tanto quanto estranha, veja:
if condição1;then
Gera var 1
fi
if condição2;then
Gera var 2
fi
if condição3;then
Gera var 3
fi
else . . .
if condição11;then
Gera var 11
fi
if condição22;then
Gera var 22
fi
if condição33;then
Gera var 33
fi

Normalmente, utilizo:
if condição
Comandos . . .
else
Comandos
fi
Montei um SCRIPT, para verificar o Estado dos Servidores e mostrar numa Janela com o zenite.
Utilizei o comando "pgrep", é uma mistura do "ps com o grep", mais pratico....

Segue:
#!/bin/bash
X=(server1 server2 server3)
for SERVER in ${X[*]};do
[[ $(pgrep -x -d: "$SERVER") ]] && eval ${SERVER}="ON" || eval ${SERVER}="OFF"
done
zenity --width 200 --height 100 --title="Estado dos SERVIDORES" --info --text="$(for ((x=0;x<${#X[@]};x++));do echo "${X[$x]}: ${!X[$x]}"; done)" 2>/dev/null

Att;
Marcelo Oliver


obrigado pela resposta, aqui esta o resultado:
X=(login-server char-server map-server)
for SERVER in ${X[*]};do
>>> linha 69 [[ $(pgrep -x -d: "$SERVER") ]] && eval ${SERVER}="ON" || eval ${SERVER}="OFF"
done
zenity --width 200 --height 100 --title="Estado dos SERVIDORES" --info --text="$(for ((x=0;x<${#X[@]};x++));do echo "${X[$x]}: ${!X[$x]}"; done)" 2> >(grep -v 'GtkDialog' >&2)

quando o server esta off:
https://imgur.com/a/vaVkcLz
e quando esta on:
https://imgur.com/a/pWmB7zq


Boa tarde Oblinez.
Não entendi pq vc colocou ">>> linha 69" no script....
X=(login-server char-server map-server)
for SERVER in ${X[*]};do
[[ $(pgrep -x -d: "$SERVER") ]] && eval ${SERVER}="ON" || eval ${SERVER}="OFF"
done
zenity --width 200 --height 100 --title="Estado dos SERVIDORES" --info --text="$(for ((x=0;x<${#X[@]};x++));do echo "${X[$x]}: ${!X[$x]}"; done)" 2> >(grep -v 'GtkDialog' >&2)

Testei aqui o que sugeri, e funcionou....
Marcelo oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts