C'è un modo per fornire attività seriali sul terminale mentre è in esecuzione un'attività (senza usare un file)?


14

Supponiamo che ci siano 2 attività t1, t2che possono essere eseguite in modo seriale come di seguito:

t1 ; t2
# OR
t1 && t2

Ora supponiamo che mi sia dimenticato di correre t2e che t1stia già correndo; posso aggiungere t2alla pipeline in modo che venga eseguito al t1termine?

Risposte:


19

Si, puoi:

  1. Metti in pausa il lavoro attualmente in esecuzione con il carattere di sospensione premendo Ctrl+ Z.
  2. Digita fgo %, aggiungi ciò che desideri all'elenco ed eseguilo, ad esempio:
    fg ; systemctl suspend # or
    % ; systemctl suspend
    Poiché fgrestituisce il valore di ritorno del lavoro ripreso, elenca gli operatori come &&e ||funziona come previsto:
    fg && echo "Finished successfully!" # or
    % && echo "Finished successfully!"

man bash/ JOB CONTROL dice del personaggio sospeso:

Digitando il carattere di sospensione (in genere ^Z, Control- Z) mentre un processo è in esecuzione, il processo viene arrestato e viene restituito il controllo bash. (...) L'utente può quindi manipolare lo stato di questo lavoro, usando il bgcomando per continuare in background, il fg comando per continuare in primo piano o il killcomando per ucciderlo. A ^Zha effetto immediato e ha l'ulteriore effetto collaterale di scartare l'output in sospeso e la testa del carattere.

fgè spiegato in man bash/ SHELL BUILTIN COMMANDS :

fg [ jobspec ]
Riprendi jobspec in primo piano e trasformalo nel lavoro corrente. Se jobspec non è presente, viene utilizzata la nozione di shell del lavoro corrente. Il valore restituito è quello del comando posizionato in primo piano, oppure errore se eseguito quando il controllo lavoro è disabilitato o, quando eseguito con controllo lavoro abilitato, se jobspec non specifica un lavoro valido o jobspec specifica un lavoro che è stato avviato senza controllo lavoro .

Ulteriori letture (a parte man bash) sul controllo del lavoro:


+1 ma è un peccato che non funzioni quando ti dimentichi t3di t1; t2; t3o t1 && t2 && t3.
JoL

@JoL È vero - ^Z^Zed %-;%+;t3è abbastanza buono in alcuni casi, ma è ben lungi dall'essere una vera soluzione al problema.
dessert

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.