como ficaria o comando split em shell script? [RESOLVIDO]

1. como ficaria o comando split em shell script? [RESOLVIDO]

michael
mundotv789123

(usa Ubuntu)

Enviado em 21/02/2018 - 14:03h

bom eu estou montando um script para o raspberry pi que envia um alerta caso a cpu almente de temperatura o comando que estou usando é
$/opt/vc/bin/vcgencmd measure_temp
porem quando eu execulto esse comando ele retorna temp=40.8'C e eu queria que ele retornace apenas o numero dai em java eu faria int c = Integer.parseInt(temp.split("=")[1].split("'")[0]); e gostaria de sabe como ficaria esse codigo em shell script


  


2. Re: como ficaria o comando split em shell script? [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 21/02/2018 - 14:17h

mundotv789123 escreveu:

bom eu estou montando um script para o raspberry pi que envia um alerta caso a cpu almente de temperatura o comando que estou usando é
$/opt/vc/bin/vcgencmd measure_temp
porem quando eu execulto esse comando ele retorna temp=40.8'C e eu queria que ele retornace apenas o numero dai em java eu faria int c = Integer.parseInt(temp.split("=")[1].split("'")[0]); e gostaria de sabe como ficaria esse codigo em shell script


tem varias maneiras de filtrar 40.8'c

uma delas é com o cut
echo "40.8'c" | cut -d "'" -f 1 


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

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

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



3. Re: como ficaria o comando split em shell script?

Matheus
pylm

(usa Gentoo)

Enviado em 21/02/2018 - 14:28h

Maneira feia de deixar só os números.


temp=$(/opt/vc/bin/vcgencmd measure_temp)

echo $temp | cut -d "=" -f 2 | cut -d "'" -f 1 | cut -d "C" -f 1


Deve dar pra fazer de modo mais bonitinho com o awk, mas aí deixo pros manjadores de shell script.


4. Re: como ficaria o comando split em shell script?

michael
mundotv789123

(usa Ubuntu)

Enviado em 21/02/2018 - 14:54h

aee deu certo vlw ae agr so queria saber como converter String em Integer pois estou tentando fazer a estrutura condicional e não estou conseguindo

if [ $temp > 100 ];then
echo "sua plaquinha pegou fogo"
fi



5. Re: como ficaria o comando split em shell script? [RESOLVIDO]

michael
mundotv789123

(usa Ubuntu)

Enviado em 21/02/2018 - 15:00h

mundotv789123 escreveu:

aee deu certo vlw ae agr so queria saber como converter String em Integer pois estou tentando fazer a estrutura condicional e não estou conseguindo

if [ $temp > 100 ];then
echo "sua plaquinha pegou fogo"
fi


ja tentei
if [ $temp -gt 41 ];then
#code
fi
mas fica dando erro
-gt: unary operator expected
ou
temp: integer expression expected


6. Re: como ficaria o comando split em shell script?

Matheus
pylm

(usa Gentoo)

Enviado em 21/02/2018 - 15:18h

Desse modo o resultado da temperatura vai ser inteiro (não um número quebrado) e vai ficar dando a temperatura da placa até 99º, quando bater 100 ele diz que a plaquinha pegou fogo :d

temp=$(/opt/vc/bin/vcgencmd measure_temp)
temp2=$(echo $temp | cut -d "." -f 1 | cut -d "=" -f 2)

if [ $temp2 -ge 100 ]
then
echo "Sua plaquinha pegou fogo"
else
echo $temp2
fi



7. Re: como ficaria o comando split em shell script? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 22/02/2018 - 09:03h

Eu não gosto de ficar chamando programas externos, especialmente em hardware menos poderoso. “Fazer em shell”, para mim, é usar o máximo possível do que o próprio shell oferece.

Não é necessário chamar cut ou awk para remover pedaços fixos de uma string. Pode-se usar substituições de variáveis que descartam pedaços que atendam a um padrão.

temp="temp=40.8'C"

# Extirpa a parte inicial (até o igual).
temp="${temp##*=}"

# Extirpa a parte final (não-numérica).
temp="${temp%%[^0-9.]*}"
# Se quiser desprezar a parte fracionária, tire o "." de dentro dos colchetes.


Se você quiser efetivamente usar a parte fracionária, o shell tradicional e o bash não vão ajudar. Uma linguagem de scripts, como Python, Perl ou mesmo o bom e velho awk seriam melhores, ou você teria de usar como shell o ksh93.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts