|
|
|
|
Google Site
|
|||||||
| Φόρουμ | Εγγραφή | Ιστολόγιο | Man Σελίδες | Κανόνες Φόρουμ | Σύνδεσμοι | Λευκώματα | Συχνές ερωτήσεις | Χρήστες | Ημερολόγιο | Αναζήτηση | Η σημερινή Θέσεις | Mark Forums Read |
| Ο προγραμματισμός και η Shell Scripting Post ερωτήσεις για KSH, CSH, SH, BASH, Perl, PHP, sed, AWK ΑΛΛΑ και shell scripts και shell scripting γλώσσα εδώ. |
![]() |
|
|
Εργαλεία Θέματος | Αναζήτηση αυτό το νήμα | Βαθμολογήστε Νήμα | Display Modes |
|
|||
|
Πώς να ελέγξετε τον αριθμό των command line επιχειρήματα;
Πώς να ελέγξετε τον αριθμό των επιχειρημάτων της γραμμής εντολών και να δώσει ένα μήνυμα σφάλματος αν λάθος;
επίσης πώς να ελέγξετε αν 2 αρχεία υπάρχουν και είναι κανονικό αρχείο και να δώσει ένα μήνυμα σφάλματος αν λάθος; (Ξέρω ότι είναι κάτι να κάνει με τη δοκιμή) αν δοκιμή filename1 \u003d $ $ filename2? συνέχεια ... (dont ξέρει τι να κάνει) else echo Λάθος αρχείο fi Πώς χρησιμοποιείτε cmp να ελέγξετε αν τα αρχεία έχουν το ίδιο περιεχόμενο και την παραγωγή ενός sutiable μήνυμα; CMP file1 file2; Σας ευχαριστώ πολύ! Unix SuperNewbie Τελευταία επεξεργασία από το prkwan? 11-14-2002 σε 01:43 μμ.. |
| Sponsored Links | ||
|
|
|
|||
|
όλα αυτά τα ερωτήματα φαίνονται σπίτι ...
θα μπορούσατε να έχετε αποθηκεύσει πολύ χρόνο με αυτόν τον άνθρωπο σε αυτές τις εντολές και να δοκιμάζετε τον εαυτό σας ... αναφέρονται επίσης ένα καλό βιβλίο σχετικά με τον προγραμματισμό κέλυφος UNIX - μια πολύ παλιά και καλή "UNIX προγραμματισμού από Kerninghan και Pike" Εις υγεία! Vishnu. |
|
|||
|
πήρα το shell script σε λειτουργία, αλλά υπάρχει ούτως ή άλλως για τη βελτίωσή του;
if test $ #-lt 2? τότε echo χρειάζονται 2 αρχεία? exit0 fi elif test-f $ 1-α-f 2 δολάρια? τότε cmp $ 1 $ 2? else echo ανάγκη να υπάρχουν και τακτική αρχεία? exit0 fi if test-f $ 1-eq-f 2 δολάρια? τότε wc $ 1 $ 2? fi if test-f $ 1! \u003d $ 2? τότε μην επαναλάβω το ίδιο αρχείο? else echo ίδιο αρχείο: fi τρόπο εμφάνισης μέγεθος αρχείου; |
|
||||
|
Δεν είμαι πεπεισμένος, όπως και Vishnu ότι αυτό το νήμα συνιστά παραβίαση του κανόνα κατά το σπίτι μας. Δεν θα διδασκαλία ότι «αν δοκιμών" σύνταξη στο 21ο αιώνα. prkwan, κάποια στιγμή, κάποιος πήρε την ιδέα να δώσει την "δοκιμή" εντολή ένα δεύτερο όνομα. Το δεύτερο όνομα είναι "[". Αυτό είναι σωστό, είναι απλώς ένα αριστερό βραχίονα. Και αν η εντολή δοκιμή βλέπει ότι το όνομα της είναι "[", γνωρίζει ότι θα πρέπει να αναμένουμε ότι η τελευταία παράμετρος της θα πρέπει να είναι "]", το οποίο μπορεί να αγνοηθεί. Έτσι ώστε να σημαίνει ότι η γραμμή σας: if test $ #-lt 2? τότε μπορεί να ξαναγραφεί ως: if [$ #-lt 2]? τότε Επειδή [είναι ένα όνομα εντολή και επειδή] είναι μια παράμετρος, και τα δύο πρέπει να περιβάλλεται από λευκό κενό. Ακόμα η νέα σύνταξη είναι πολύ ευκολότερο να διαβάσει. Αυτή η αλλαγή έγινε στη δεκαετία του 70, ώστε αναρωτιέμαι αν μπορεί να ανάγνωση ένα παλαιότερο βιβλίο; Εν πάση περιπτώσει, η στροφή προς τα νεότερα σύνταξη είναι η πρώτη αλλαγή που θα πρότεινα. Στη συνέχεια, πρέπει πραγματικά να χρησιμοποιήσετε εσοχή για να κάνουν τον κωδικό σας πιο ευανάγνωστη. Δεν υπάρχει κανένας απολύτως καλύτερος τρόπος για την περίπτωση, θα πρέπει να βρει το δικό σας στυλ. Αλλά δικαστή, ζητώντας από τον εαυτό σας με τον τρόπο ευανάγνωστο είναι ο κώδικας. Και να είναι συνεπείς ... μερικές φορές έχετε "τότε" στην ίδια γραμμή με το «εάν» και σε άλλες περιπτώσεις, για την επόμενη γραμμή. Δεν Μπορείτε να μας πει που κέλυφος ή ποια έκδοση του Unix που χρησιμοποιείτε. Αλλά ίσως θα πρέπει να έχει ηγετικό γραμμή που λέει "#! / Bin / sh" ή κάτι τέτοιο. Διαβάζω αυτήν την ανάρτηση για το λόγο. Είμαι λίγο έκπληκτος που ακολουθείτε μία «fi" με ένα "elif", δεν κέλυφος έχω δοκιμάσει θα το δεχτεί αυτό. Μπορείτε με συνέπεια να έχουν "exit0" όπου θα πρέπει να "exit 0". Και προσπαθώ να τελειώσω σενάρια μου με ρητή εξόδου. Αυτό είναι για την αναγνωσιμότητα περισσότερο από οτιδήποτε άλλο. Κωδικός:
#! /bin/ksh
if [ $# -lt 2 ] ; then
echo need 2 files
exit 0
elif [ -f $1 -a -f $2 ] ; then
cmp $1 $2 ;
else
echo need exist and regular files
exit 0
fi
if [ -f $1 -eq -f $2 ] ; then
wc $1 $2
fi
if [ -f $1 != $2 ] ; then
echo File not the same
else
echo Same file
fi
exit 0Τώρα που μπορώ να διαβάσει τον κώδικα, βλέπω περισσότερα προβλήματα. Η δοκιμή γύρω "τουαλέτα σας" δεν έχει νόημα. Δεν είμαι σίγουρος τι είχε στο μυαλό γι 'αυτό. Επίσης, δεν τελικό τεστ. Αλλά εκεί που όπως σας δεν σημαίνει ότι πρέπει να "-f". Απόσπασμα:
|
| Sponsored Links |
|
|
![]() |
| Σελιδοδείκτες |
| Εργαλεία Θέματος | Αναζήτηση αυτό το νήμα |
| Display Modes | Βαθμολογήστε αυτό το νήμα |
|
|
Περισσότερα UNIX και Linux Forum Θέματα που μπορεί να σας Χρήσιμη
|
||||
| Νήμα | Thread Starter | Φόρουμ | Απαντήσεις | Τελευταίο μήνυμα |
| γραμμή επιχειρήματα | skooly5 | Ο προγραμματισμός και η Shell Scripting | 1 | 04-07-2008 04:49 AM |
| επιχειρήματα στη γραμμή | RRS | UNIX για Ανδρείκελα Ερωτήσεις & Απαντήσεις | 6 | 07-28-2006 07:44 AM |
| γραμμή επιχειρήματα | bankpro | Προγραμματισμός | 3 | 02-02-2006 11:12 AM |
| Command Line Επιχειρήματα | roba909 | UNIX για Ανδρείκελα Ερωτήσεις & Απαντήσεις | 7 | 01-19-2006 01:46 μμ |
| Ανάλυση της γραμμής εντολών επιχειρήματα | jayakhanna | UNIX για Advanced & Expert Χρήστες | 7 | 12-17-2003 07:42 μμ |