Você pode usar read
e simplesmente fazer o seguinte
while read -r memfree
do printf '%s\n' "$memfree"
done < <(awk -F: '/MemFree/{print $2}' /proc/meminfo)
Estou tentando obter informações de memória por este comando:
#!/bin/bash
set -x
cat /proc/meminfo | grep "MemFree" | tail -n 1 | awk '{ print $2 $4 }' | read numA numB
echo $numA
Estou recebendo isso
+ awk '{ print $2 $4 }'
+ read numA numB
+ tail -n 1
+ grep MemFree
+ cat /proc/meminfo
+ echo
Minhas tentativas de ler esses dados para variáveis não tiveram sucesso. Minha pergunta é como eu posso ler isso para variáveis? Eu quero ler quantas memória é livre como: 90841312 KB
Tente salvar valores únicos diretamente em cada variável. Você também pode remover o cat
e o tail
pipe usando o -m
flag com grep
:
numA=$(grep -m 1 "MemFree" /proc/meminfo | awk '{ print $2 }')
numB=$(grep -m 1 "MemFree" /proc/meminfo | awk '{ print $3 }')
echo $numA $numB
Tags pipe shell-script