Store netcat output into variable

Я бы использовал perl и решайте это следующим образом:

#!/usr/bin/env perl
use strict;
use warnings;

while ( <> ) {
  my ( @date ) = m/(\d{4})\D(\d{2})\D(\d{2})/;
  my $date_str = join "-", @date;
  print $date_str,"\n";
}

Он сопоставляет «4 цифры», «2 цифры», «2 цифры» и переформатирует их, чтобы они были разделены - . Однако предполагается, что ваши номера расположены «правильно».

2
13.11.2016, 19:08
2 ответа

В оболочке установка переменных будет выполняться с помощью:

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

У вас не может быть пробелов между вашим именем переменной, символом равенства и значением, которое вы присваиваете своей переменной.

Затем, чтобы отобразить переменную, вы должны сделать:

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

Символ & в bash / sh используется для «управления заданиями», что является еще одной темой, ...

Вместо этого начните с использования следующего, расскажите нам, как это происходит:

#! /bin/sh

while true;do
    var="$(echo "RDTEMP1" | netcat -q2 sanderpi 5033)"
    echo "$var"
    echo "$(date +%Y-%m-%d%t%H:%M:%S)"
done
6
27.01.2020, 21:51

Назначение переменных в оболочках не требует пробелов вокруг присваивающего (например, = ).

Правильно:

var=$(frobnify xyz)

Неправильно:

var = $(frobnify xyz)
2
27.01.2020, 21:51

Теги

Похожие вопросы