Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Cos'è la bolla dell'IA e perché se ne parla
Cos'è la bolla dell'IA e perché se ne parla
Si parla molto ultimamente di "bolla dell'intelligenza artificiale", ma non è sempre chiaro perché: l'IA è una tecnologia molto promettente e che ha già cambiato molte cose dentro e fuori le aziende, ma ci sono enormi aspettative che stanno gonfiando a dismisura i valori delle azioni e distorcendo il mercato. Il che, com'è facile intuire, può portare a una ripetizione della "bolla dotcom", e forse anche di quella dei mutui subprime. Vediamo perché
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile
BOOX Palma 2 Pro è l'ultima evoluzione della gamma Palma. Ma di cosa si tratta? In breve è un dispositivo e-ink da 6,13 pollici che sfida le convenzioni con un display Kaleido 3 a colori, supporto per stilo InkSense Plus, connettività 5G solo dati e alimentato dal sistema operativo Android 15. Con queste caratteristica si configura come qualcosa in più di un semplice e-reader
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-07-2011, 18:46   #1
DjDiabolik
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1382
Niubbo chiede supporto su lancio secondo file .sh da primo .sh...

Ciao ragazzi.. in pratica vi spiego cos'è che voglio ottenere:

Io ho 2 file .sh... esempio 1.sh e 2.sh... io parto con l'esecuzione di 1.sh che all'interno poi richiama il 2.sh.

A questo punto però mentre il 2.sh è in esecuzione a me serve che l'1.sh aspetti il termine del 2.sh e non che i due file siano processati in multitasking.

In pratica essendo un pò + bravino su ambiente windows e nello scripting in batch voglio ottenere quello che invece il batch fa normalmente.... perchè proprio se da un batch io richiamo un secondo file batch il primo interrompe l'esecuzione e aspetta il terminare del secondo batch.....

Sono stato chiaro ?
__________________
Un tizio entra in un BAR..............
DjDiabolik è offline   Rispondi citando il messaggio o parte di esso
Old 10-07-2011, 20:52   #2
blair
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 465
puoi provare ad usare il comando wait, nel tuo caso sarebbe una cosa del tipo:

2.sh &
PID=$!
wait $PID

oppure

2.sh &
wait

wait ferma l'esecuzione dello script finchè tutti i jobs in background non sono terminati, oppure finchè il job (job id) o processo (process id) passati terminano.
blair è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 01:43   #3
DjDiabolik
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1382
mmm.. provo.. e questo praticamente va nell'1.sh subito dopo aver richiamato il 2.sh giusto ?
__________________
Un tizio entra in un BAR..............
DjDiabolik è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 10:42   #4
blair
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 465
si va nel file 1.sh
tieni conto che:
2.sh &
già esegue il file 2.sh (in background).
blair è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 12:08   #5
zarazoski
Bannato
 
Iscritto dal: Jan 2010
Messaggi: 240
Quote:
Originariamente inviato da DjDiabolik Guarda i messaggi
e nello scripting in batch voglio ottenere quello che invece il batch fa normalmente.... perchè proprio se da un batch io richiamo un secondo file batch il primo interrompe l'esecuzione e aspetta il terminare del secondo batch.....

Sono stato chiaro ?
perche', se in 1.sh chiami semplicemente 2.sh cosa succede ?
zarazoski è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 12:41   #6
DjDiabolik
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1382
allora nel 2.sh uso un paio di volte il comando wget poi di volta in volta mi costruisco un output da mostrare a schermo.
Non riesco a capire perchè se io implemento i wget nel 1.sh quest'ultimi non funzionano e bloccano l'esecuzione dello script stesso mentre cosi appunto messi un file .sh a parte vengono eseguiti tranquillamente.

Cmq sia l'1.sh al suo termine mostra a schermo un'output cioè l'output generato dal 2.sh (in pratica una sorta di log dei comandi wget) però a me appunto tutt'ora accade che:
- lancio 1.sh
- 1.sh richiama il 2.sh
usando appunto ".\2.sh &" l'1.sh non mi aspetta la fine dell'esecuzione del 2.sh ma me lo esegue tipo multitasking e quindi poi genera tutti errori appunto perchè non trova i log generati.

Ho provato a mettere uno "sleep x" ma non so poi quando potrebbero impiegare i 3 wget..... cercando in rete ho poi trovato un suggerimento che diceva di mettere "wait" subito dopo la chiamata al 2.sh quindi ho fatto x esempio :
Codice:
...
...
.\2.sh &
wait
...
...
Ma non riesco ad ottenere ciò che voglio io.....
__________________
Un tizio entra in un BAR..............
DjDiabolik è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 12:43   #7
blair
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 465
a seconda di come è fatto il file richiamato può funzionare o meno
Ad esempio:

file 2.sh:
#!/bin/bash
echo 2 - start
sleep 3 &
echo 2 - stop

file 1.sh:
#!/bin/bash
echo 1 - start
. 2.sh
echo 1 - stop

se esegui 1.sh avrai come output:
1 - start
2 - start
2 - stop
1 - stop
ma il programma termina immediatamente senza aspettare 3 secondi, questo perchè un comando/programma nel file richiamato è andato in background.
Modificando 2.sh aggiungendo semplicemente il comando wait in questo modo:
#!/bin/bash
echo 1 - start
. 2.sh
wait
echo 1 - stop

si risolve questa eventualità.
Ovvio poi che a seconda dei casi bisogna prestare attenzione ed usare la soluzione migliore.
blair è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 12:46   #8
zarazoski
Bannato
 
Iscritto dal: Jan 2010
Messaggi: 240
Quote:
Originariamente inviato da DjDiabolik Guarda i messaggi
...

tutt'ora accade che:
- lancio 1.sh
- 1.sh richiama il 2.sh
usando appunto ".\2.sh &" l'1.sh non mi aspetta la fine dell'esecuzione del 2.sh ma me lo esegue tipo multitasking e quindi poi genera tutti errori appunto perchè non trova i log generati.


e richiamarlo semplicemente con .\2.sh ?
zarazoski è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 12:59   #9
blair
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 465
se c'è qualche programma che forka in background ovviamente richiamarlo direttamente non funziona, con il wait dovrebbe, se non funziona nemmeno così, beh bisogna vedere il tuo 2.sh, dovresti postarlo così ci rendiamo conto..
blair è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 12:59   #10
DjDiabolik
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1382
Quote:
Originariamente inviato da zarazoski Guarda i messaggi


e richiamarlo semplicemente con .\2.sh ?
gia provato non funziona.......

Anche mettendo il wait sembra non funzionare.... è alquanto strano.
__________________
Un tizio entra in un BAR..............
DjDiabolik è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 14:13   #11
zarazoski
Bannato
 
Iscritto dal: Jan 2010
Messaggi: 240
Quote:
Originariamente inviato da DjDiabolik Guarda i messaggi
gia provato non funziona.......

se lo chiami nel modo piu' semplice, la chiamata diretta e' sincrona: quando termina il 2.sh, l'esecuzione ritorna al 1.sh
lascia perdere le & e wait
evidentemente fai qualche pasticcio nel 2.sh con i wget: quoto blair, prova a postarlo (se non c'e' niente di riservato )
zarazoski è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 20:51   #12
DjDiabolik
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1382
allora.... il 2.sh è questo:
Codice:
#!/bin/sh

echo
echo "    Reload Setting in corso.."
echo
echo "_____________________________"
echo
sleep 3

echo "Reload Network"
wget -q -P /usr/bin -O /tmp/ReloadNetwork.logreload "http://root:xxxxxx@localhost/cgi-bin/reloadNetworks"
ReloadNetwork="$(grep "" /tmp/ReloadNetwork.logreload)"
echo $ReloadNetwork
echo

echo "Reload Setting"
wget -q -P /usr/bin -O /tmp/ReloadSetting.logreload "http://root:xxxxxx@localhost/cgi-bin/reloadSettings"
ReloadSetting="$(grep "" /tmp/ReloadSetting.logreload)"
echo $ReloadSetting
echo

echo "Reload UserBouquets"
wget -q -P /usr/bin -O /tmp/ReloadUserBouquets.logreload "http://root:xxxxx@localhost/cgi-bin/reloadUserBouquets"
ReloadUserBouquets="$(grep "" /tmp/ReloadUserBouquets.logreload)"
echo $ReloadUserBouquets
echo

echo
echo "Reload settings riuscito, premere EXIT per chiudere la finestra.."

rm -f /tmp/*.logreload

exit 0
e l'1.sh ora è cosi:
Codice:
#!/bin/sh

./2.sh &
wait

exit 0
Ricapitolo.. in pratica io eseguo l'1.sh che al suo termine mostra un'output a schermo da se..... però per far andare i wget devo per forza eseguirli nell'sh esterno altrimenti non so per quale motivo i wget non vanno (seppur ho impostato correttamente gli attributi e vengono eseguiti anch'essi da un patch con attributi 777).
Però cosi facendo io ottengo l'output a schermo quando invece in background il 2.sh è ancora in esecuzione.....e quindi l'output a schermo (che sono quindi i vari echo) escono troncati.

*EDIT*
Pensavo non fosse necessario ma a questo punto lo dico... è un decoder Enigma1.
__________________
Un tizio entra in un BAR..............

Ultima modifica di DjDiabolik : 11-07-2011 alle 20:54.
DjDiabolik è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 22:03   #13
zarazoski
Bannato
 
Iscritto dal: Jan 2010
Messaggi: 240
editato

Ultima modifica di zarazoski : 11-07-2011 alle 22:45.
zarazoski è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 22:45   #14
zarazoski
Bannato
 
Iscritto dal: Jan 2010
Messaggi: 240
Codice:
wget -q -P /usr/bin -O /tmp/ReloadNetwork.logreload "http://root:xxxxxx@localhost/cgi-bin/reloadNetworks"
ReloadNetwork="$(grep "" /tmp/ReloadNetwork.logreload)"
echo $ReloadNetwork
non capisco il -P e il -O che sono in conflitto, e il grep
non sara' meglio farlo cosi' ?:
Codice:
wget -q -O /tmp/ReloadNetwork.logreload "http://root:xxxxxx@localhost/cgi-bin/reloadNetworks"
cat /tmp/ReloadNetwork.logreload
comunque non ha senso fare due script: lancia direttamente il 2.sh

e finalmente ho capito che non avevo capito cosa volevi fare
per la cronaca, ho copiato il tuo script 2.sh su un mio decoder (ho solo tolto il -P dal wget) e funziona...

Ultima modifica di zarazoski : 11-07-2011 alle 22:49.
zarazoski è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2011, 00:06   #15
blair
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 465
pure io non capisco il grep...
io ho provato i due script e funzionano perfettamente (io non ho tolto il -P), ho solo cambiato path e poi ho levato quei grei sostituendoli ad un cat.

ps: ha ragione zarazoski riguardo il -P...

Quote:
Ricapitolo.. in pratica io eseguo l'1.sh che al suo termine mostra un'output a schermo da se..... però per far andare i wget devo per forza eseguirli nell'sh esterno altrimenti non so per quale motivo i wget non vanno (seppur ho impostato correttamente gli attributi e vengono eseguiti anch'essi da un patch con attributi 777).
cosa vuol dire non vanno?

Quote:
Però cosi facendo io ottengo l'output a schermo quando invece in background il 2.sh è ancora in esecuzione.....e quindi l'output a schermo (che sono quindi i vari echo) escono troncati.
non capisco, da quegli script è 2.sh che stampa l'output, non 1.sh, e come fa 1.sh a ritornare senza prima aver eseguito tutto
E' possibile che se i file sono quandi l'ultima stampa richieda un determinato tempo ed il processo termini prima che tutto l'output sia stato visualizzato. E' questo il problema?

ps: puoi anche eliminare i file intermedi in questo modo:

Codice:
VAR1=`wget -qO - "http://....."`
echo "$VAR1"

Ultima modifica di blair : 12-07-2011 alle 00:48.
blair è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2011, 00:48   #16
DjDiabolik
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1382
Quote:
Originariamente inviato da zarazoski Guarda i messaggi
Codice:
wget -q -P /usr/bin -O /tmp/ReloadNetwork.logreload "http://root:xxxxxx@localhost/cgi-bin/reloadNetworks"
ReloadNetwork="$(grep "" /tmp/ReloadNetwork.logreload)"
echo $ReloadNetwork
non capisco il -P e il -O che sono in conflitto, e il grep
non sara' meglio farlo cosi' ?:
Codice:
wget -q -O /tmp/ReloadNetwork.logreload "http://root:xxxxxx@localhost/cgi-bin/reloadNetworks"
cat /tmp/ReloadNetwork.logreload
comunque non ha senso fare due script: lancia direttamente il 2.sh

e finalmente ho capito che non avevo capito cosa volevi fare
per la cronaca, ho copiato il tuo script 2.sh su un mio decoder (ho solo tolto il -P dal wget) e funziona...
Allora se lo lanci da telecomando.. dal pannello di controllo e dalla sezione script il wget non funziona.

il -P è per far eseguire il wget da una cartella con le autorizzazioni.... poi il grep e l'echo è per far si di fare andare a capo il tutto e far mostrare un'output almeno un pò ordinato perchè ho provato col cat solo e mi stampava tutto su una riga.

Ho provato in diversi modo ma come detto provate a lanciare lo script dal pannello di controllo e vedrete che non funziona ovviamente rinominato tipo script00.sh.
__________________
Un tizio entra in un BAR..............
DjDiabolik è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2011, 00:53   #17
blair
Senior Member
 
Iscritto dal: Jan 2006
Messaggi: 465
Quote:
il -P è per far eseguire il wget da una cartella con le autorizzazioni.... poi il grep e l'echo è per far si di fare andare a capo il tutto e far mostrare un'output almeno un pò ordinato perchè ho provato col cat solo e mi stampava tutto su una riga.
che il -P faccia quello siamo daccordo, il problema è utilizzardo insieme a -O..
per quanto riguarda la stampa, è normale che un echo stampi in quella maniera, per ovviare al problema basta mettere il testo da stampare tra virgolette, ad esempio:

Codice:
VAR1=`wget -qO - "http://....."`
echo "$VAR1"
Quote:
Ho provato in diversi modo ma come detto provate a lanciare lo script dal pannello di controllo e vedrete che non funziona ovviamente rinominato tipo script00.sh.
il problema non è lo script, prova a lanciarlo da una qualsiasi console e vedrai che funziona...
blair è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2011, 00:54   #18
DjDiabolik
Senior Member
 
Iscritto dal: Aug 2004
Messaggi: 1382
si che da console funziona... ma io è da telecomando che devo lanciarlo

*EDIT*
E se lo lanci da telecomando non so il motivo ma il wget non viene eseguito... e si blocca l'esecuzione.
__________________
Un tizio entra in un BAR..............

Ultima modifica di DjDiabolik : 12-07-2011 alle 00:59.
DjDiabolik è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2011, 10:02   #19
zarazoski
Bannato
 
Iscritto dal: Jan 2010
Messaggi: 240
Quote:
Originariamente inviato da DjDiabolik Guarda i messaggi
Allora se lo lanci da telecomando.. dal pannello di controllo e dalla sezione script il wget non funziona.

il -P è per far eseguire il wget da una cartella con le autorizzazioni.... poi il grep e l'echo è per far si di fare andare a capo il tutto e far mostrare un'output almeno un pò ordinato perchè ho provato col cat solo e mi stampava tutto su una riga.

Ho provato in diversi modo ma come detto provate a lanciare lo script dal pannello di controllo e vedrete che non funziona ovviamente rinominato tipo script00.sh.
negativo su tutta la linea
ieri ho fatto dei test sul mio DB enigma1
-a me funziona anche lanciato da telecomando come userscript (l'ho messo come /var/scripts/prova_userscript.sh) dopo un chmod a+x ovviamente. Dove lo metti tu ?
-il -P serve per impostare la cartella dove scaricare (-P Set directory prefix to DIR)
-grep o cat: cosa devi formattare ? a me ritorna solo 3 caratteri "+ok" (in caso di errore non lo so)
zarazoski è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
Fondazione Chips-IT, l'Italia alla riscossa nei chip. Il piano e la partnership EssilorLuxottica Fondazione Chips-IT, l'Italia alla riscossa nei ...
SpaceX ha annunciato che un satellite St...
ASUSTOR presenta i nuovi NAS Lockerstor ...
Rivoluzione fotovoltaico: i pannelli non...
Jared Isaacman è ufficialmente il...
Due smartphone super completi in offerta...
Le schede video Arc dominano la fascia e...
Auto elettriche sotto la lente dell'Anti...
Palo Alto Networks e IBM collaborano per...
Gemini può ora rilevare i deepfak...
Crisi delle RAM? A quanto pare non per N...
Dreame entra nel mercato smartphone: tra...
Cloudflare, nel 2025 un web a due facce:...
Riot prepara 'League Next': il futuro di...
NVIDIA e AMD interessate a Intel Foundry...
Sentite Volkswagen: "addio piccole ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:27.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v