[Risolto] Problema con le array in bash

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
nick091
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 440
Iscrizione: mercoledì 25 giugno 2008, 18:36

[Risolto] Problema con le array in bash

Messaggio da nick091 »

voglio mettere in una array l'elenco di finestre

Codice: Seleziona tutto

#! /bin/bash
declare -a first
i=0
wmctrl -l| while read line
do
  echo $i $line
  first[$i]=$line
  (( i=i+1 ))
done
echo "la array contiene " ${#first[@]} " righe"
ma ottengo che la array è vuota

Codice: Seleziona tutto

lubuntu@lubuntu-VirtualBox:~/MyScripts$ bash clear_desktop.sh
0 0x01a00021 -1 lubuntu-VirtualBox panel
1 0x01600001 -1 lubuntu-VirtualBox Conky (lubuntu-VirtualBox)
2 0x01a0002f -1 lubuntu-VirtualBox panel
3 0x01a00033 -1 lubuntu-VirtualBox panel
4 0x01c00008 -1 lubuntu-VirtualBox pcmanfm
5 0x02a00004 0 lubuntu-VirtualBox lubuntu@lubuntu-VirtualBox: ~/MyScripts
6 0x01c003ba 0 lubuntu-VirtualBox MyScripts
7 0x02400003 0 lubuntu-VirtualBox clear_desktop.sh
8 0x02800003 0 lubuntu-VirtualBox logfile
la array contiene  0  righe
dove sbaglio?
Ultima modifica di nick091 il domenica 6 aprile 2014, 14:17, modificato 1 volta in totale.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Problema con le array in bash

Messaggio da UbuNuovo »

Codice: Seleziona tutto

#!/bin/bash 

declare -a first
i=0
while read line
do
#  echo "$i $line"
  first[$i]="$line"
  (( i++ ))
done < <(wmctrl -l)

echo "first contiene ${#first[@]} elementi"
eseguito:

Codice: Seleziona tutto

8-) ./script.sh 
first contiene 7 elementi
Salva l'Ucraina! 🇺🇦
nick091
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 440
Iscrizione: mercoledì 25 giugno 2008, 18:36

Re: Problema con le array in bash

Messaggio da nick091 »

non capisco ma mi adeguo :)
thanks
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Problema con le array in bash

Messaggio da UbuNuovo »

Neanch'io! Non ho guardato da cosa dipende il problema , ho solo riscritto come l'avrei fatto io.
Semmai domani lo guardo meglio.
Ciaux
Salva l'Ucraina! 🇺🇦
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Problema con le array in bash

Messaggio da UbuNuovo »

Il problema è il pipe "|" che come sai (in bash) esgue quello che c'è dopo, in una subshell.
Quando puoi evitarlo evitalo! Cerca "sostituzione di processo"
Salva l'Ucraina! 🇺🇦
nick091
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 440
Iscrizione: mercoledì 25 giugno 2008, 18:36

Re: Problema con le array in bash

Messaggio da nick091 »

lol
no, non lo sapevo, o forse anche si
bash lo conosco pochissimo
grazie anche per la spiegazione
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4457
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Problema con le array in bash

Messaggio da UbuNuovo »

Di niente.
Puoi metteree risolto.
Ciaux
Salva l'Ucraina! 🇺🇦
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti