Salve a tutti, vorrei sapere come fare a lanciare tanti lavori da terminale e fare in modo che vengano eseguiti l'uno alla fine dell'altro. Grazie in anticipo e buone feste a tutti

chiesto 22 Dic '14, 11:45

frank-90%20_petrosino's gravatar image

frank-90 _pe...
1011

Ringrazio tutti per le risposte ben dettagliate. Proverò ad eseguire i lavori come consigliato. I calcoli da fare sono dei calcoli di chimica computazionale lanciati mediante uno script apposito che attraverso un file di input esegue dei calcoli molto onerosi mediante il programma NWchem. Siccome i lavori vanno eseguiti su dei supercomputer pensavo di automatizzarne il lancio senza andare di giorno in giorno a prendere il risultato del lavoro precedente e lanciare il successivo.

Grazie ancora e buone feste a tutti

(23 Dic '14, 20:51) frank-90 _pe... frank-90%20_petrosino's gravatar image

La domanda, purtroppo, non è univoca.
E di conseguenza nemmeno la risposta lo sarà.

Come puoi leggere sul manuale di bash, può essere interpretata (e risposta) in diversi modi.

Due di questi hanno risposta con i connettivi && (equivalente all'ET logico) e || (equivalente all'AUT logico, o XOR).

Per farti un esempio, guarda la differenza degli output dei seguenti comandi dati nella mia home

ls && ls -l
ls || ls -l
ls pippo && ls -l
ls pippo || ls -l

La terza, che rileggendo la domanda forse più si avvicina alla tua idea, è invece indipendente dagli output dei comandi precedenti e si ottiene con il connettivo ;. Puoi vedere gli output dei seguenti comandi qui.

ls ; ls -l
ls pippo ; ls -l

Inoltre potresti voler eseguire questi lavori in parallelo, cosa che puoi fare con il connettivo &, come puoi vedere negli output di

ls & ls -l
ls pippo & ls -l

vengono create delle subshell temporanee in cui vengono eseguiti e l'output riportato al terminale principale.

coll. permanente

ha risposto 23 Dic '14, 17:09

dadexix86's gravatar image

dadexix86 ♦♦
16.9k716161

In aggiunta alla risposta di @dadexix86, per eseguire più comandi in un terminale in sequenza (e non in parallelo) senza curarsi dell'esito dei comandi stessi, puoi semplicemente inserire i comandi uno per riga in un file di testo, supponiamo di nome batch, aggiungere una riga all'inizio come la seguente

#!/bin/bash

poi rendi eseguibile il file

chmod +x batch

e poi lo esegui con

./batch

Andare da capo in uno script di bash equivale a separare i comandi con il carattere ';'.

coll. permanente

ha risposto 23 Dic '14, 17:20

enzotib's gravatar image

enzotib ♦♦
14.0k112186

-1

Dipende da ciò che vuoi eseguire, a volte con uno script puoi tranquillamente scrivere in sequenza il lancio di una serie di programmi, comandi o altri script, tranquillo che uno vada in esecuzione solo dopo che il precedente è terminato, cosa che con tanti programmi non è possibile.

Quando è capitato a me di doverlo fare, dovendo usare comandi misti (tcl/tk, comandi di shell lancio di software pascal e altro), per essere tranquillo, all'interno di un programma facevo in modo che prima di chiudersi creasse un file "guida" vuoto (usando il comando touch) e con una if controllavo che il programma o lo script successivo venissero lanciati solo in presenza di quel file; file che naturalmente veniva cancellato/eliminato subito dopo il lancio del nuovo programma e ricreato al termine, questo fino alla fine del penultimo programma o script.

Edit

Da tener presente che quanto sopra può funzionare solo avendo la possibilità di gestire tutto il software che si vuole far eseguire. La cosa p.es. non sarebbe possibile se di dovesse lanciare un software compilato scritto in Pascal, senza poter aggiungere al suo interno la creazione e la cancellazione del file "guida".

Edit

Vedendo che la mia risposta ha avuto votazioni negative, reputando invece che prima di bocciare un qualcosa sia sempre meglio ragionarci sopra (naturalmente potendo), cercherò di chiarire meglio il concetto.
Se per creare le condizioni per effettuare una certa cosa devo usare uno script che avvii un programma e se questo programma, una volta lanciato lascia che lo script da cui dipende proceda senza curarsi del fatto che gli obiettivi non siano ancora stati raggiunti, devo controllare con una routine errori o in qualche modo, che il programma successivo venga avviato solamente quando esistono le condizioni perché possa funzionare regolarmente.

Certamente possono esserci mille modi per fare ciò e tutto è opinabile, io, quando ho dovuto farlo è stato per installare automaticamente (inserendo semplicemente un CD, parlo del 2002 e allora andavano montati) un software di gestione aziendale scritto con Kilix (allora per SuSE e solo successivamente per Ubuntu) e trasformato con Delphi (per Windows), con il quale fra l'altro oltre a creare sia un primo DataBase che uno di prova, bisognava controllare la versione di mysql client e server qualora esistente e/o, eventualmente installarlo. Installando anche l'occorrente perché i dati potessero essere gestiti con Open Office Base, ecc.. Bene questo è il metodo utilizzato da me per fare in modo che lo stesso procedimento di installazione potesse funzionare sia con SuSE che con Windows XP / server e con la semplice creazione di un file, oltre che al flusso, dove possibile (SuSE), controllavo che l'utente fosse quello giusto.

Il gestionale di cui parlo si chiama/va sennA era distribuito gratuitamente e mi risulta che qualcuno stia ancora usandolo.

coll. permanente

ha risposto 23 Dic '14, 18:39

enzoge's gravatar image

enzoge
4.6k203987

modificato 24 Dic '14, 06:18

Vorrei spiegare che la mia ultima aggiunta di dati alla risposta, vista e segnalata come offensiva ed inappropriata, la ho fatta nell'intento di fornire migliori spiegazioni e maggiori dati, per agevolare chi legge nel poter valutarne meglio il contenuto esposto.

Non volevo offendere nessuno e le parole fra parentesi "naturalmente potendo", si riferivano appunto al fatto di avere maggiori informazioni per meglio valutarla; e comunque, al più avrei potuto riferirmi alla capacità tecnica e non certo a quella mentale. Mi dispiace di essere stato frainteso!

(24 Dic '14, 05:39) enzoge enzoge's gravatar image

Per chi legge: @stani ha segnalato come offensiva e inappropriata questa risposta.

@stani: offensivo e inappropriato stai cominciando ad essere tu. Il portale è e deve essere improntato al reciproco rispetto e al comportamento amichevole.
Il tuo comportamento, il tuo continuo votare negativamente le risposte di un singolo utente, non è sfuggito nessuno.
Se continui così ti becchi un'altra sanzione, questa volta più seria.

(24 Dic '14, 08:55) enzotib ♦♦ enzotib's gravatar image

@enzotib, posso pensare che secondo me la risposta era più un commento che una risposta? E votarla negativamente, o non si possono usare i voti?

Quindi per il reciproco rispetto e comportamento amichevole non si possono dare voti negativi? In questo caso, forse, sarebbe opportuno rimuovere i voti dalla piattaforma.

Per quanto riguarda il votare negativamente un singolo utente, come hai scritto tu, ho dato dei voti negativi dove ho visto risposte che secondo me contenevano errori nei comandi e non potevano essere utili, oppure, potevano stare come commenti.

Quando si da un voto negativo, si è obbligati a commentare per spiegare (non mi pare che nessuno lo faccia, forse devo farlo solo io?) oppure se vedo qualcosa che secondo me non va bene posso dare un voto negativo?

Comunque se proprio devo (a quanto pare solo io) ti dò una spiegazione per ogni voto negativo che ho dato.

(24 Dic '14, 09:52) anonimo01 anonimo01's gravatar image

@stani: a mio parere è evidente l'accanimento contro un singolo utente, e porterò le mie impressioni agli altri admin e moderatori.
Se non ho ancora preso provvedimenti è per un eccesso di garantismo, ma ora basta.

(24 Dic '14, 09:58) enzotib ♦♦ enzotib's gravatar image

Non cè nessun accanimento, ho solo dato voti negativi in situazioni in cui il voto negativo ci può stare, ti ho scritto in privato elencandoti le discussioni e le motivazioni, anche se non credo che sia dovuto.

Prima di accusare di accanimento, andate a leggere le risposte che sono state votate negativamente e vedete cosa cè in quelle risposte.

(24 Dic '14, 10:20) anonimo01 anonimo01's gravatar image

@stani, non ho bisogno di leggere niente, resto del mio parere, e restano le minacce di sanzioni.

(24 Dic '14, 10:22) enzotib ♦♦ enzotib's gravatar image

@enzotib, invece sarebbe meglio meglio che le leggessi...

(24 Dic '14, 10:39) anonimo01 anonimo01's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×133

domanda posta: 22 Dic '14, 11:45

domanda visualizzata: 744 volte

ultimo aggiornamento: 24 Dic '14, 10:39

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.