Bash: Πως εκτελούμε μια εντολή Χ φορές στη σειρά με την for

dimitris | Πέμ, 08/29/2013 - 21:47 | 2' | 2

Να ένα tip για το πως κάνουμε μια δουλειά στη γραμμή εντολών (Bash) που απαιτεί να κάνουμε πολλά παρόμοια πράγματα το ένα μετά το άλλο. Αντί να δίνουμε την ίδια εντολή ξανά και ξανά με το χέρι αλλάζοντας κάθε φορά αυτό το μικρό πραγματάκι που διαφοροποιείται, μπορούμε να χρησιμοποιήσουμε την for λούπα με μια μεταβλητή i που παίρνει τιμές ανάμεσα στα όρια που της δίνουμε.

for i in {1..10}  ; do  echo $i ; done

Θα τυπώσει όλους τους αριθμούς από το 1 ως το 10.

Χαζό;

Σκεφτείτε για παράδειγμα ότι έχετε κάποιες φωτογραφίες σε ένα φάκελο, αριθμημένες αλλά θέλετε γρήγορα να διαγράψετε αυτές που έχουν όνομα photo119842.jpg έως photo119110.jpg. Δείτε πόσο εύκολα γίνεται:

for i in {119842..119110}  ; do rm photo$i.jpg ; done

 

Περισσότερα tutorials για Bash:

Εισαγωγή στο Bash: Ροές και pipes

Bash: Βρόχος επανάληψης σε εύρος αριθμών όπου μεταβλητές ορίζουν την αρχή ή το τέλος

Bash: Πως εκτελούμε μια εντολή Χ φορές στη σειρά με την for

Bash: Κωδικοί εξόδου και έλεγχος ροής

Scripting: Όταν το GUI δέν επαρκεί

Bash: Επεξεργασία κειμένου με Regular Expressions και άλλα κόλπα

Φόρουμ
Δώσε αστέρια!

MO: 5 (ψήφοι: 2)

Σχόλια

Το τελευταίο παράδειγμα θα μπορούσε επίσης να γραφτεί

for i in {842..110}; do rm -f photo119$i.jpg; done

Helix]

Το τελευταίο παράδειγμα θα μπορούσε επίσης να γραφτεί

for i in {842..110}; do rm -f photo119$i.jpg; done

+1