Armazena a saída do netcat em variável

3

Eu quero armazenar a saída de uma função netcat em uma variável. Eu tentei várias maneiras diferentes, mas isso não funciona para mim. Alguém pode me ajudar? Todo o script é totalmente novo para mim!

#! /bin/sh

while true;do
        var = "$(echo "RDTEMP1" | netcat -q2 sanderpi 5033)"
        echo &(var)
        echo "$(date +%Y-%m-%d%t%H:%M:%S)"
done
    
por sanderfcb95 13.11.2016 / 16:29

2 respostas

5

No shell, as variáveis de configuração seriam feitas com:

var1=toto
var2="$(echo toto | othercommand)"

Você não pode ter espaços entre o nome da variável, o caractere igual e o valor com o qual está atribuindo sua variável.

Então, para fazer o eco de uma variável, você faria:

echo $var
echo "$var"
echo "${var}"

O caractere & , em bash / sh, é usado para "controle de tarefa", que é outro tópico, ...

Comece por usar o seguinte, diga-nos como é:

#! /bin/sh

while true;do
    var="$(echo "RDTEMP1" | netcat -q2 sanderpi 5033)"
    echo "$var"
    echo "$(date +%Y-%m-%d%t%H:%M:%S)"
done
    
por 13.11.2016 / 16:38
2

Atribuições variáveis em shells não requerem espaços ao redor do atribuidor (por exemplo, = ).

Correto:

var=$(frobnify xyz)

Errado:

var = $(frobnify xyz)
    
por 13.11.2016 / 16:39