Ajuda para armazenar o resultado de um comando em uma variável

1. Ajuda para armazenar o resultado de um comando em uma variável

Francisco Antonio de Aquino Pessoa
FranciscoPessoa

(usa Linux Mint)

Enviado em 08/01/2016 - 14:47h

Ae galera gostaria de saber como faço para armazenar a porcentagem do HD em uma varável em Shell Script.
Quando dou o comando DF aparece a informação de quanto porcento estou usando na minha /dev/sda (por exemplo), há como eu guardar esta porcentagem em uma variável?


  


2. Re: Ajuda para armazenar o resultado de um comando em uma variável

Perfil removido
removido

(usa Nenhuma)

Enviado em 08/01/2016 - 15:22h

Tu pode usar o comando abaixo, porém se tiver mais de um HD no PC (ou partições), terá mais de um valor; por isso recomendo que armazene em um array:

# Array para armazenar o dispositivo em /dev
hddev=($(df | egrep '^/dev/sd??' | awk '{print $1}'))

# Array para armazenar a porcentagem
hdper=($(df | egrep '^/dev/sd??' | awk '{print $5}'))

# Imprime na saída padrão os valores correspondentes
for ((i = 0; i <= ${#hddev[@]} - 1; i+=1)) ; do
echo "HD: ${hddev[ i ]} --> ${hdper[ i ]}"
done


* Remova os espaços em '[ i ]' dentro do for
- -
moremoremoreram!
http://bit.ly/1Pqwb4T



3. RES: Ajuda para armazenar o resultado de um comando em uma variável

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 08/01/2016 - 15:23h

Olá,
uma alternativa seria você salvar o resultado em um arquivo e fazer a leitura desse arquivo com o while



---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


4. Re: Ajuda para armazenar o resultado de um comando em uma variável

Bruno Ricardo Rodrigues
Brunorr

(usa CentOS)

Enviado em 08/01/2016 - 15:50h

Comando
df | grep /dev/sda | tr -s [:space:] | cut -d ' ' -f 5


Explicando:
df - Lista os discos
grep - Pega somente a linha do /dev/sda
tr - Remove todas as ocorrencias de "espaço" deixando somente 1 para separar as colunas
cut - divide o arquivos em colunas separadas pelo caracter passado no parametro -d entre aspas simples (No caso um espaço) e corta/exibe somente a coluna passada no paramentro -f, no caso 5 (Aonde está a porcentagem).

caso queira salvar este valor num arquivo é direcionar o resultado, e em variável de ShellScript coloca o comando entre acentos `` exemplo
var=`df | grep /dev/sda | tr -s [:space:] | cut -d ' ' -f 5`


Se funcionar avisa :)


5. RES: Ajuda para armazenar o resultado de um comando em uma variável

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 08/01/2016 - 15:53h

bruno862 escreveu:

Comando
df | grep /dev/sda | tr -s [:space:] | cut -d ' ' -f 5


Explicando:
df - Lista os discos
grep - Pega somente a linha do /dev/sda
tr - Remove todas as ocorrencias de "espaço" deixando somente 1 para separar as colunas
cut - divide o arquivos em colunas separadas pelo caracter passado no parametro -d entre aspas simples (No caso um espaço) e corta/exibe somente a coluna passada no paramentro -f, no caso 5 (Aonde está a porcentagem).

caso queira salvar este valor num arquivo ou variavel é direcionar o resultado ;)

Se funcionar avisa :)


+1

essa foi em cheio, vou até salvar aqui



---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


6. Re: Ajuda para armazenar o resultado de um comando em uma variável

Bruno Ricardo Rodrigues
Brunorr

(usa CentOS)

Enviado em 08/01/2016 - 15:57h

Que bom que deu certo ;)


Abraços


7. Perfeito!

Francisco Antonio de Aquino Pessoa
FranciscoPessoa

(usa Linux Mint)

Enviado em 08/01/2016 - 16:24h

bruno862 escreveu:

Comando
df | grep /dev/sda | tr -s [:space:] | cut -d ' ' -f 5


Explicando:
df - Lista os discos
grep - Pega somente a linha do /dev/sda
tr - Remove todas as ocorrencias de "espaço" deixando somente 1 para separar as colunas
cut - divide o arquivos em colunas separadas pelo caracter passado no parametro -d entre aspas simples (No caso um espaço) e corta/exibe somente a coluna passada no paramentro -f, no caso 5 (Aonde está a porcentagem).

caso queira salvar este valor num arquivo é direcionar o resultado, e em variável de ShellScript coloca o comando entre acentos `` exemplo
var=`df | grep /dev/sda | tr -s [:space:] | cut -d ' ' -f 5`


Se funcionar avisa :)


Muito bom cara, funcionou direitinho, muito obrigado!!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts