[Risolto] Eseguire serie di programmi bash

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
ienavespa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 335
Iscrizione: martedì 23 agosto 2011, 13:17
Località: Trento
Contatti:

[Risolto] Eseguire serie di programmi bash

Messaggio da ienavespa »

Ciao a tutti.
Ho una serie di programmi bash (centinaia) nominati programma_10001.sh, programma_10002.sh, ecc e sto cercando di creare un ciclo che li esegua in ordine
La mia bacata logica mi fa presumere che assegnando ad una variabile "i" 10001 ed ad "y" il numero dell'ultimo programma da eseguire dovrei cavarmela con un tranquillo

Codice: Seleziona tutto

#!/bin/bash
i=100001
y=100005
while [ $i -lt $y ]; do
sh programma_$i
let "i += 1"
done
exit
ed invece mi viene restituito a schermo

Codice: Seleziona tutto

programma-ciclo.sh: 6: programma-ciclo.sh: let: not found
sh: 0: Can't open programma_100001
WHY?

- EDIT -
Cambiano il comando di incremento della variabile ed aggiungendo (ovviamente) l'estensione .sh al programma richiamato funziona.

Codice: Seleziona tutto

#!/bin/bash
i=100001
y=100005
while [ $i -lt $y ]; do
sh programma_$i.sh
i= `expr $i + 1`
done
exit
Grazie a tutti, in particolare ad UbuNuovo per l'ispirazione :birra:
Ultima modifica di ienavespa il martedì 19 aprile 2016, 9:20, modificato 3 volte in totale.
LAVORO: Assemblato con processore Intel i5-7500 CPU @ 3.40 GHz x 4 , scheda grapica Intel Graphics 630 (Kaby Lake GT2), RAM 8 GiB - SO Ubuntu 18.04 64 bit

CASA: Notebook Asus X54C - Intel i3 2350M 2,30 Ghz 4 Gb Ram - SSD 250 Gb - Scheda video integrata Intel HD Graphics 3000 - SO Ubuntu 18.04 64 bit
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: Eseguire serie di programmi bash

Messaggio da UbuNuovo »

Non hai messo l'estensione '.sh'

Codice: Seleziona tutto

#!/bin/bash
i=100001
y=100005
while [ $i -lt $y ]; do
	sh ./programma_$i.sh
	((i++))
done
exit
(Ho messo './' per fare una prova con script nella directory corrente.)
Salva l'Ucraina! 🇺🇦
Avatar utente
ienavespa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 335
Iscrizione: martedì 23 agosto 2011, 13:17
Località: Trento
Contatti:

Re: Eseguire serie di programmi bash

Messaggio da ienavespa »

UbuNuovo [url=http://forum.ubuntu-it.org/viewtopic.php?p=4872500#p4872500][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Non hai messo l'estensione '.sh'

Codice: Seleziona tutto

#!/bin/bash
i=100001
y=100005
while [ $i -lt $y ]; do
	sh ./programma_$i.sh
	((i++))
done
exit
(Ho messo './' per fare una prova con script nella directory corrente.)
Ho corretto con l'estensione (ovviamente!!!) ed ho fatto altre prove. Il "problema" stava nell'incremento della variabile, eppure sono convinto di aver sempre usato il "let" senza problemi. Normalmente per la "grammatica" mi rivolgo a PLUTO..
Comunque nemmeno la tua espressione ((i++)) funziona. Ho dovuto usare

Codice: Seleziona tutto

i=`expr $i + 1`
LAVORO: Assemblato con processore Intel i5-7500 CPU @ 3.40 GHz x 4 , scheda grapica Intel Graphics 630 (Kaby Lake GT2), RAM 8 GiB - SO Ubuntu 18.04 64 bit

CASA: Notebook Asus X54C - Intel i3 2350M 2,30 Ghz 4 Gb Ram - SSD 250 Gb - Scheda video integrata Intel HD Graphics 3000 - SO Ubuntu 18.04 64 bit
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: [RISOLTO] Eseguire serie di programmi bash

Messaggio da UbuNuovo »

Strano, a me funzionava anche con la tua prima sintassi (di let), non saprei da cosa possa dipendere.
Qualcuno ha qualche idea?
Salva l'Ucraina! 🇺🇦
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [RISOLTO] Eseguire serie di programmi bash

Messaggio da crap0101 »

UbuNuovo [url=http://forum.ubuntu-it.org/viewtopic.php?p=4872611#p4872611][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Strano, a me funzionava anche con la tua prima sintassi (di let), non saprei da cosa possa dipendere.
Qualcuno ha qualche idea?
nello script usa bash ma quando esegue i programmi usa sh cioè dash cioè niente let
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
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: [RISOLTO] Eseguire serie di programmi bash

Messaggio da UbuNuovo »

Figuriamoci, io credevo che let fosse "portable"! Grazie Crap.
Salva l'Ucraina! 🇺🇦
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti