Προς το περιεχόμενο

bash script απορία


Fott1

Προτεινόμενες αναρτήσεις

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το ζήτημα είναι το εξης :

 

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

 

Υπάρχει κάτι καλύτερο που μπορείτε να προτείνετε; υπάρχουν κάποια σοβαρά λάθη;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μιά λίγο πιό κομψή λύση:

>#!/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; }

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...