Δημιουργία αντιγράφων λίστας με την εντολή "foreach" του Linux

Κατά τον προγραμματισμό , η εντολή foreach υλοποιεί έναν βρόχο όπου οι μεταβλητές βρόχου αναλαμβάνουν τις τιμές από μία ή περισσότερες λίστες. Στην απλούστερη περίπτωση υπάρχει μια μεταβλητή βρόχου, varname , και μια λίστα, λίστα , που είναι μια λίστα με τιμές που πρέπει να εκχωρήσετε στο varname . Το όρισμα του σώματος είναι ένα σενάριο Tcl. Για κάθε στοιχείο της λίστας (κατά σειρά από το πρώτο στο τελευταίο), ο foreach εκχωρεί τα περιεχόμενα του στοιχείου στο varname σαν να είχε χρησιμοποιηθεί η εντολή lindex για την εξαγωγή του στοιχείου και κατόπιν καλεί τον διερμηνέα Tcl να εκτελέσει το σώμα .

Σύνοψη

foreach body list varname
foreach varlist1 list1 ; varlist2 list2 ... ; σώμα

Συζήτηση

Σε μια γενική περίπτωση, μπορεί να υπάρχουν περισσότερες από μία λίστα τιμών (π.χ. λίστα1 και λίστα2 ), και κάθε λίστα τιμών μπορεί να συσχετιστεί με μια λίστα μεταβλητών βρόχου (π.χ. varlist1 και varlist2 ). Κατά τη διάρκεια κάθε επανάληψης του βρόχου, οι μεταβλητές κάθε varlist αποδίδονται διαδοχικά από την αντίστοιχη λίστα . Οι τιμές σε κάθε λίστα χρησιμοποιούνται με σειρά από το πρώτο στο τελευταίο και κάθε τιμή χρησιμοποιείται ακριβώς μία φορά. Ο συνολικός αριθμός επαναλήψεων κύκλου είναι αρκετά μεγάλος ώστε να χρησιμοποιεί όλες τις τιμές από όλες τις λίστες τιμών. Εάν μια λίστα τιμών δεν περιέχει αρκετά στοιχεία για κάθε μεταβλητή βρόχου σε κάθε επανάληψη, χρησιμοποιούνται κενές τιμές για τα στοιχεία που λείπουν.

Οι εντολές διακοπής και συνέχισης μπορούν να χρησιμοποιηθούν στο εσωτερικό του σώματος , με το ίδιο αποτέλεσμα όπως στην εντολή for . Το f orach επιστρέφει μια κενή συμβολοσειρά.

Παραδείγματα

Ο επόμενος βρόχος χρησιμοποιεί i και j ως μεταβλητές βρόχου για να επαναλάβει ζεύγη στοιχείων μιας μόνο λίστας.

set x {} foreach {ij} {abcdef} {lappend x $ j $ i} # Η τιμή του x είναι "badcfe" # Υπάρχουν 3 επαναλήψεις του βρόχου.

Ο επόμενος βρόχος χρησιμοποιεί i και j για να επαναλάβει παράλληλα δύο λίστες.

set x {} foreach i {abc} j {defg} {lappend x $ i $ j} # Η τιμή του x είναι "adbecf {} g" # Υπάρχουν 4 επαναλήψεις του βρόχου.

Οι δύο μορφές συνδυάζονται στο ακόλουθο παράδειγμα.

Η τιμή του x είναι "adebfgc {} {}" # Υπάρχουν 3 επαναλήψεις του βρόχου.

Σημειώσεις

Αρκετές σχετικές εντολές λειτουργούν με foreach που περιλαμβάνουν:

Επειδή η διανομή του Linux και τα επίπεδα απελευθέρωσης πυρήνα ποικίλλουν, χρησιμοποιήστε την εντολή man ( % man ) για να δείτε πώς μια εντολή χρησιμοποιείται ειδικά στον υπολογιστή σας .