Δημοσιεύτηκε: 09 Δεκ 2009, 06:33
από nasosnik
@ the_sidewinder
Κατ' αρχήν σε ευχαριστώ πολύ για το χρόνο που διέθεσες για να απαντήσεις στο post μου :). Οι απαντήσεις είναι κατατοπιστικότατες και ειλικρινά με βοήθησαν πολύ στο να λύσω κάποιες απορίες που είχα.
the_sidewinder έγραψε:
Δεν κατάλαβα ακριβώς τι θέλεις να πεις. Αν εννοείς ότι επειδή κάποιες εντολές δεν εκτελούνται στιγμιαία, αλλά χρειάζονται την παρέμβαση του χρήστη για να τερματίσουν, οπότε πρέπει να τις τρέξεις στο background για να μείνει ελέυθερο το τερματικό, τότε ναι. Έχεις δίκιο.
Εξαρτάται, όμως, τι θέλεις να κάνεις. Το script το φτιάχνεις για να αυτοματοποιήσεις μία εργασία. Εάν η εργασία π.χ. απαιτεί να ανοιχθεί ένα αρχείο με επεξεργαστή κειμένου (ας πουμε vim my_file) και αφού ο χρήστης κλείσει τον vim ΤΟΤΕ ΚΑΙ ΜΟΝΟ ΤΟΤΕ να συνεχιστεί η εκτέλεση στο script, φυσικά και ΔΕ θα βάλεις &.
Και για να σε διορθώσω και λίγο, το & δεν ανοίγει νέο παράθυρο, αλλά τρέχει το πρόγραμμα στο background. Ψάξε λίγο τις εντολές jobs, fg, bg και συναφή και αν χρειαστείς διευκρινίσεις ξαναρώτα.

Αυτό ακριβώς ήθελα να ρωτήσω,καλύφθηκα πλήρως :).
nasosnik έγραψε:
:?:(4) Τι σύμβολο πρέπει να χρησιμοποιήσω στο τέλος μιας εντολής για να πετύχω "εκτέλεσε την επόμενη εντολή χωρίς να περιμένεις την παρούσα να τελειώσει αλλά μόνο αν η παρούσα εκτελέστηκε με επιτυχία".Δηλαδή συνδιασμός των && και &.

Ναι,δεν το διατύπωσα σωστά :crazy:. Λέγοντας "εκτέλεσε την επόμενη εντολή χωρίς να περιμένεις την παρούσα να τελειώσει αλλά μόνο αν η παρούσα εκτελέστηκε με επιτυχία" εννοούσα εντολές σαν την top,να εκτελεστεί η επόμενη αν και μόνο αν η παρούσα (top) τρέχει με επιτυχία, δηλαδή δεν παρουσίασε κάποιο σφάλμα.Εννοείται ότι η επόμενη εντολή δεν περιμένει την top να κλείσει εντελώς,απλά εκτελείται παράλληλα αν η top κατάφερε να ξεκινήσει.

Και πάλι σε ευχαριστώ πολύ :).