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

Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
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: 1390
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: 1390
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: 1390
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: 1390
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: 1390
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: 1390
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: 1390
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


Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Nasce TrendAI, la divisione di Trend Mic...
Recensione Motorola Signature: il primo ...
TeraFab, Elon Musk parte all'assalto di ...
L'ambiziosa base lunare permanente sulla...
Litografia BEUV (Beyond-EUV): la startup...
SAP e l'IA agentica: dall'hype alla matu...
'Abbiamo raggiunto l'AGI': Jensen Huang ...
Claude ora usa il mouse e la tastiera al...
Analisi Opensignal 2026: TIM si prende l...
Revolut sfida le grandi banche: utile da...
La NASA parla del futuro delle missioni ...
HP TPM Guard chiude la falla di BitLocke...
HP Imagine 2026: dalle workstation con c...
HP IQ: 20 miliardi di parametri sul PC, ...
Claude Code, il piano Max brucia la quot...
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: 16:54.


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