Να ένα 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 και άλλα κόλπα
- Συνδεθείτε ή εγγραφείτε για να σχολιάσετε
Σχόλια
Το τελευταίο παράδειγμα θα μπορούσε επίσης να γραφτεί
for i in {842..110}; do rm -f photo119$i.jpg; done
+1