Исчезновение переменной, если она не отображается Rust - PullRequest
0 голосов
/ 18 апреля 2020

Пожалуйста, помогите мне понять, почему мне нужно отобразить переменную. Я использую ssh2 crate для создания соединения s sh. Мой код здесь:

use ssh2::Session;
use std::io::prelude::*;
use std::net::{TcpStream};

fn main() {
  // Connect to the SSH server
  let tcp = TcpStream::connect("192.168.1.251:22").unwrap();
  let mut sess = Session::new().unwrap();
  sess.set_tcp_stream(tcp);
  sess.handshake().unwrap();
  sess.userauth_password("root", "password").unwrap();

  let mut s = String::new();
  let last_stat = String::from("unknown"); 

  loop {
    let mut channel = sess.channel_session().unwrap();
    channel.exec("systemctl is-active firewalld").unwrap();
    channel.read_to_string(&mut s).unwrap();
    if &s.to_string().trim() == &last_stat {
      print!("stopped");
    } else {
      print!("{}",&s);    
    }
    &s.clear();
    std::thread::sleep(std::time::Duration::from_secs(1));
  }
}

Если брандмауэр остановлен, ничего не отображается. Но если я покажу переменную в выводе, то код работает и отобразит «unknown».

use ssh2::Session;
use std::io::prelude::*;
use std::net::{TcpStream};

fn main() {
  // Connect to the SSH server
  let tcp = TcpStream::connect("192.168.1.251:22").unwrap();
  let mut sess = Session::new().unwrap();
  sess.set_tcp_stream(tcp);
  sess.handshake().unwrap();
  sess.userauth_password("root", "password").unwrap();

  let mut s = String::new();
  let last_stat = String::from("unknown"); 

  loop {
    let mut channel = sess.channel_session().unwrap();
    channel.exec("systemctl is-active firewalld").unwrap();
    channel.read_to_string(&mut s).unwrap();
    if &s.to_string().trim() == &last_stat {
      print!("{}",&s);
    } else {
      print!("{}",&s);    
    }
    &s.clear();
    std::thread::sleep(std::time::Duration::from_secs(1));
  }
}

Почему я должен отображать переменную & s, чтобы код работал? огромное спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...