[Risolto] Aggiustare output comando

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Pehua
Prode Principiante
Messaggi: 241
Iscrizione: martedì 19 aprile 2022, 9:02
Desktop: Ubuntu
Distribuzione: Ubuntu 22.04.4 LTS
Sesso: Maschile

[Risolto] Aggiustare output comando

Messaggio da Pehua »

Ho fatto un piccolo script con una barra di avanzamento per il comando speedtest, da installare se non si ha gia, funziona ma non risolvo un piccolo dettaglio.

Lo script è questo:

Codice: Seleziona tutto

barra=""

speedtest | sed -n -e '7p' -e '9p' | cut -d "(" -f 1 2>/dev/null &

pid=$!

while kill -0 $pid 2>/dev/null

do

  barra="$barra#"
  
  echo -ne "$barra\r"
  
  sleep .5

done

echo

echo "The End!!"	
Output:

Codice: Seleziona tutto

$ ./script.sh 
Download: 93.19 Mbit/s#####################
Upload: 96.43 Mbit/s
Il dettaglio che non riesco a risolvere è questo, che la scritta del risultato si stampa insieme ai #
mentre invece vorrei che l' output fosse:

Codice: Seleziona tutto

##########################################
Download: 93.19 Mbit/s
Upload: 96.43 Mbit/s
Ho provato ad assegnare il comando ad una variabile ma poi echo $var non stampa nulla.

Come posso avere l'ouput desiderato?

Grazie
Ultima modifica di Pehua il sabato 25 febbraio 2023, 18:27, modificato 1 volta in totale.
Al di la delle impostazioni culturali :birra:
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1627
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: Aggiustare output comando

Messaggio da nuzzopippo »

Non mi risulta possa farsi un output del genere in bash, per farlo, in un terminale, dovresti ricorrere ad un linguaggio di programmazione vero e proprio, p.e. C/C++/python/etc. ed a librerie specializzate tipo le curses
Fatti non foste a viver come bruti ...
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4444
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Aggiustare output comando

Messaggio da UbuNuovo »

speedtest stampa in due tempi, per conto mio, se vuoi quell'output, sei obbligato a salvare su file.
Ti conviene usare l'opzione --simple che stampa solo le velocità di: ping, down e upload.
Ho usato sed per non stampare il ping ma credo sia meglio stamparlo, quindi sed non servirebbe.

Codice: Seleziona tutto

#!/bin/bash
tmp='/tmp/speed'
barra=""
speedtest --simple |sed -n -e '2,3p' 2>/dev/null  > "$tmp" &
pid=$!

while kill -0 $pid 2>/dev/null
do
  barra="$barra#"
  echo -ne "$barra\r"
  sleep .5
done
clear
echo -e "$barra\n$(cat "$tmp")\n\nThe End!!"
P.s. per eliminare la prima riga basterebbe sed '1d', ho usato il tuo metodo per farti vedere un altro modo di scrivere il comando.
Salva l'Ucraina! 🇺🇦
Avatar utente
Pehua
Prode Principiante
Messaggi: 241
Iscrizione: martedì 19 aprile 2022, 9:02
Desktop: Ubuntu
Distribuzione: Ubuntu 22.04.4 LTS
Sesso: Maschile

Re: Aggiustare output comando

Messaggio da Pehua »

UbuNuovo ha scritto:
sabato 25 febbraio 2023, 15:39
speedtest stampa in due tempi, per conto mio, se vuoi quell'output, sei obbligato a salvare su file.
Ti conviene usare l'opzione --simple che stampa solo le velocità di: ping, down e upload.
Ho usato sed per non stampare il ping ma credo sia meglio stamparlo, quindi sed non servirebbe.

Codice: Seleziona tutto

#!/bin/bash
tmp='/tmp/speed'
barra=""
speedtest --simple |sed -n -e '2,3p' 2>/dev/null  > "$tmp" &
pid=$!

while kill -0 $pid 2>/dev/null
do
  barra="$barra#"
  echo -ne "$barra\r"
  sleep .5
done
clear
echo -e "$barra\n$(cat "$tmp")\n\nThe End!!"
P.s. per eliminare la prima riga basterebbe sed '1d', ho usato il tuo metodo per farti vedere un altro modo di scrivere il comando.
Ottimo grazie Ubu, non sapevo si potesse redirigere "di nuovo" dopo dev/null.

Ho capito lo stratagemma, hai fatto bene a scriverlo come l' ho scritto io almeno lo capisco heheh

Grazie mille :birra:
Al di la delle impostazioni culturali :birra:
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4444
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Aggiustare output comando

Messaggio da UbuNuovo »

Di nulla
ciaux
Salva l'Ucraina! 🇺🇦
Avatar utente
Pehua
Prode Principiante
Messaggi: 241
Iscrizione: martedì 19 aprile 2022, 9:02
Desktop: Ubuntu
Distribuzione: Ubuntu 22.04.4 LTS
Sesso: Maschile

Re: Aggiustare output comando

Messaggio da Pehua »

UbuNuovo ha scritto:
sabato 25 febbraio 2023, 18:21
Di nulla
ciaux
Capito anche sed '1d' # Thx so much!

Codice: Seleziona tutto

#!/bin/bash
tmp='/tmp/speed'
barra=""
speedtest --simple | sed '1d' 2>/dev/null  > "$tmp" &
pid=$!

while kill -0 $pid 2>/dev/null
do
  barra="$barra#"
  echo -ne "$barra\r"
  sleep .5
done
echo
echo -e "\n$(cat "$tmp")\n\nThe End!!"
Output "desiderato":

Codice: Seleziona tutto

dev@null:~/Scrivania$ ./script.sh 
###########################################

Download: 92.87 Mbit/s
Upload: 95.00 Mbit/s

The End!!
Al di la delle impostazioni culturali :birra:
Avatar utente
nuzzopippo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1627
Iscrizione: giovedì 12 ottobre 2006, 11:34

Re: [Risolto] Aggiustare output comando

Messaggio da nuzzopippo »

Oh! ... beh, non avevo immaginato che potesse servire "dopo" l'output di speedtest e, comunque, non sarei riuscito ad escogitare la tecnica proposta da @UbuNuovo.
In ogni caso, ho parlato troppo presto :D
Fatti non foste a viver come bruti ...
Avatar utente
Pehua
Prode Principiante
Messaggi: 241
Iscrizione: martedì 19 aprile 2022, 9:02
Desktop: Ubuntu
Distribuzione: Ubuntu 22.04.4 LTS
Sesso: Maschile

Re: [Risolto] Aggiustare output comando

Messaggio da Pehua »

nuzzopippo ha scritto:
sabato 25 febbraio 2023, 19:20
Oh! ... beh, non avevo immaginato che potesse servire "dopo" l'output di speedtest e, comunque, non sarei riuscito ad escogitare la tecnica proposta da @UbuNuovo.
In ogni caso, ho parlato troppo presto :D
Ciao, tranquillo, siamo "tutti" stupidi umani :lol:

Gazie e buon we :birra:
Al di la delle impostazioni culturali :birra:
vestpreacher
Prode Principiante
Messaggi: 4
Iscrizione: mercoledì 8 febbraio 2023, 3:51
Sesso: Maschile

Re: [Risolto] Aggiustare output comando

Messaggio da vestpreacher »

La problematica è legata alla nuova versione di libmdc-dev che richiede di chiamare la funzione MdcInit() per settare l'endianness del sistema. Ho aggiunto semplicemente tale chiamata in libmdc_interface.c ed ora Amide legge correttamente gli interfile.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: TommyB1992 e 7 ospiti