Go Back   Το UNIX και Linux Forums > Top Forums > Ο προγραμματισμός και η Shell Scripting
.
Google Site



Ο προγραμματισμός και η Shell Scripting Post ερωτήσεις για KSH, CSH, SH, BASH, Perl, PHP, sed, AWK ΑΛΛΑ και shell scripts και shell scripting γλώσσα εδώ.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Εργαλεία Θέματος Αναζήτηση αυτό το νήμα Βαθμολογήστε Νήμα Display Modes
  #1 (Permalink)  
Old 11-14-2002
Εγγεγραμμένος χρήστης
 

Εγγραφή: Νοέμβριος 2002
Τοποθεσία: London UK
Θέσεις: 5
Πώς να ελέγξετε τον αριθμό των 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
  #2 (Permalink)  
Old 11-14-2002
Εγγεγραμμένος χρήστης
 

Εγγραφείτε Ημερομηνία: Αύγουστος 2002
Τοποθεσία: Marlboro, MA
Μηνύματα: 114
όλα αυτά τα ερωτήματα φαίνονται σπίτι ...

θα μπορούσατε να έχετε αποθηκεύσει πολύ χρόνο με αυτόν τον άνθρωπο σε αυτές τις εντολές και να δοκιμάζετε τον εαυτό σας ...

αναφέρονται επίσης ένα καλό βιβλίο σχετικά με τον προγραμματισμό κέλυφος UNIX - μια πολύ παλιά και καλή "UNIX προγραμματισμού από Kerninghan και Pike"

Εις υγεία!
Vishnu.
  #3 (Permalink)  
Old 11-16-2002
Εγγεγραμμένος χρήστης
 

Εγγραφή: Νοέμβριος 2002
Τοποθεσία: London UK
Θέσεις: 5
πήρα το 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


τρόπο εμφάνισης μέγεθος αρχείου;
  #4 (Permalink)  
Old 11-17-2002
Perderabo's Avatar
Unix Daemon
 

Εγγραφείτε Ημερομηνία: Αύγουστος 2001
Τοποθεσία: Ashburn, Virginia
Δημοσιεύσεις: 9150
Δεν είμαι πεπεισμένος, όπως και 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".


Απόσπασμα:
τρόπο εμφάνισης μέγεθος αρχείου;
Λοιπόν "wc" φαίνεται πραγματικά να έχει η βάση καλύπτεται εδώ. Το άλλο πράγμα είναι "ls-l".
Sponsored Links
Closed Thread

Σελιδοδείκτες

Εργαλεία Θέματος Αναζήτηση αυτό το νήμα
Αναζήτηση αυτό το νήμα:

Advanced Search
Display Modes Βαθμολογήστε αυτό το νήμα
Βαθμολογήστε αυτό το νήμα:

Απόσπαση Κανονισμού
Εσύ δεν μπορεί να υστέρων νέα νήματα
Εσύ δεν μπορεί να μετά απαντήσεις
Εσύ δεν μπορεί να μετά συνημμένα
Εσύ δεν μπορεί να επεξεργαστείτε τις θέσεις

BB κωδικός είναι Σε λειτουργία
Smilies είναι Σε λειτουργία
[IMG] κωδικός Σε λειτουργία
Κώδικα HTML είναι Εκτός χρήσης
Trackbacks είναι Σε λειτουργία
Pingbacks είναι Σε λειτουργία
Refbacks είναι Εκτός χρήσης


Περισσότερα 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 μμ



Όλες οι ώρες είναι GMT -4. Η ώρα τώρα είναι 08:20 μμ.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Γλώσσα Μεταφράσεις Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Η UNIX και Linux Φόρουμ Content Copyright © 1993-2010. Όλα τα δικαιώματα Reserved.Ad διαχείριση από RedTyger

Περιεχόμενο σχετικό με τις διευθύνσεις URL vBSEO 3.2.0