Fott1 Δημοσ. 6 Ιουνίου 2011 Share Δημοσ. 6 Ιουνίου 2011 do if grep -q '#!/bin/bash' το -q εδώ γιατί το χρησιμοποιούμε; στην συνταξη της grep ξέρω ότι μπορώ να χρησιμοποιήσω -n,-v,-y,-i,-w . εδώ γιατί είναι έτσι; Το ζήτημα και η δωσμένη λύση είναι το παρακάτω. 20. Να γραφεί εντολή που θα βρίσκει σε ποια αρχεία του /etc υπάρχει η λέξη #!/ bin/bash. for i in `ls -al /etc | awk '/^[^d]/{print $NF}'`; do if grep -q '#!/bin/bash' $i; then echo $i; fi; done Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Γηρυόνης Δημοσ. 6 Ιουνίου 2011 Share Δημοσ. 6 Ιουνίου 2011 Το -q σημαίνει quiet, δηλαδή μη γράφεις τίποτα στο terminal window. Αν υπάρχει αυτό που ψάχνεις το -q θα επιστρέψει 0 αλλιώς 1. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Fott1 Δημοσ. 6 Ιουνίου 2011 Μέλος Share Δημοσ. 6 Ιουνίου 2011 κατάλαβα ευχαριστώ πολυ.. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Fott1 Δημοσ. 6 Ιουνίου 2011 Μέλος Share Δημοσ. 6 Ιουνίου 2011 Το ζήτημα είναι το εξης : 1.Να γραφεί script που θα δέχεται ένα γράμμα ως παράμετρο και θα εμφανίζει τα πραγματικά ονόματα (geckos) τον χρηστών με login που ξεκινά από αυτό το γράμμα. Να ελέγχεται το πλήθος των παραμέτρων αν είναι μία, αν η παράμετρος είναι ένας χαρακτήρας και αν υπάρχουν αυτοί οι χρήστες και να εκτυπώνονται τα αντίστοιχα μηνύματα λάθους καθώς και να δίνεται κάποιος κωδικός εξόδου στην κάθε περίπτωση. Η δική μου απάντηση είναι η: #!/bin/bash if [$# -ne 1]; then echo "to programma kaleitai mono me mia parametro" exit 1 fi echo $1 | grep "^[A-Za-z]$" > temp if [!-s temp]; then echo " ayto poy dwsate den einai xaraktiras" exit2 fi cat /etc/passwd | awk -v char=$1 '{if(substr($1,1,1)=char) { print $5}}' > temp if [!-s temp]; then echo "den yparxei login pou ksekinaei apo afton ton xaraktira" exit3 fi cat temp exit0 Υπάρχει κάτι καλύτερο που μπορείτε να προτείνετε; υπάρχουν κάποια σοβαρά λάθη; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
NullScan Δημοσ. 6 Ιουνίου 2011 Share Δημοσ. 6 Ιουνίου 2011 Μιά λίγο πιό κομψή λύση: >#!/bin/bash [ $# -ne 2 ] || { echo "too many (or too few) params"; exit 2; } [ $(echo $1 | wc -c - | cut -c -2) -eq 2 ] || { echo "too many chars"; exit 3; } cat /etc/passwd | awk 'BEGIN {FS=":"}; {print $1}' | grep -e "^$1" [ $? -eq 1 ] && { echo "none found"; exit 1; } || { exit 0; } Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Fott1 Δημοσ. 6 Ιουνίου 2011 Μέλος Share Δημοσ. 6 Ιουνίου 2011 ευχαριστώ πολύ , μου έδωσες μία ιδέα με αυτό που έγραψες.. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.