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

Προβλημα σε κώδικα bash


bnvdarklord

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

Δημοσ.

Σορυ αν ο τίτλος ειναι λίγο ασαφής, αλλα δεν ειμαι σίγουρος πως να περιγράψω το πρόβλημα μου ...

Λοιπον εχω τον εξής κώδικα που υποτιθεται τοποθετεί ολα τα αρχεία ενος καταλόγου σε καταλόγους με ονοματα A,B,C κτλ ανάλογα με το πρώτο γραμμα του καθε αρχείου.

 

>
for f in *
do
if [ ! -d $f ]; then

	letter=`ls $f | cut -c1,1 | tr [a-z] [A-Z]`
	if [ -d $letter ]; then
		mv $f $letter
	else
		mkdir $letter
		mv $f $letter
	fi
fi
done

 

Το θεμα ειναι οτι βγάζει διαφορα σφάλματα μετα την 2η φορα εκτελεσης του for, σχετικά με τις mv και tr. Δοκιμασα να βάλω ενα echo $letter πριν το εσωτερικό if, και διαπίστωσα ότι μετα την 2η φορα το letter δεν παιρνει τιμες :rolleyes:...

Αν αφαιρέσω το εσωτερικο if παιρνει σωστά ολες τις τιμές που πρέπει...

 

Τι κανω λαθος ;

Δημοσ.

mv: missing destination file operand after `new'

Try `mv --help' for more information.

tr: extra operand `A'

Try `tr --help' for more information.

 

Και αυτό το βγάζει για όλα τα αρχεία μετα τα 2 πρώτα.

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

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

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