this bash one-liner is beyond me
Pavlos Parissis
p_pavlos at freemail.gr
Wed Jan 11 17:26:32 EET 2006
Hello Niko,
Αρχικό μήνυμα από "Nick Demou (enLogic)" <ndemou at enlogic.gr>:
> στην σελίδα [1] βρήκα ένα bash one-liner το οποίο επιτρέπει σε ένα
> χρήστη να εκπαιδευει το spamassassin (κάνωντας move τα email που έχουν
> κακοχαρακτηριστεί ως spam ή ham σε δύο άλλους φακέλους -it_is_spam ,
> it_is_ham-). Φυσικά δεν δούλεψε :-) και ψάχνωντας κατέληξα σε αυτό το
> κομάτι της γραμμής το οποίο "χτυπάει" (όλα μια γραμμή):
>
> $/usr/bin/tee > \
> (/usr/bin/sa-learn --spam --single > /dev/null) \
> | /usr/bin/spamc | /usr/lib/cyrus-imapd/deliver Inbox
>
> αυτό που θεωρητικά θα έπρεπε να κάνει είναι να πάρει το stdin και να το
> προωθήσει αφενώς στην εντολή
> /usr/bin/sa-learn --spam --single > /dev/null
> και αφετέρου στην εντολή
Νομίζω οτί αυτό είναι λάθος, το παρακάτω θα πάρει μόνο τα errors από την
προηγούμενη εντολή δίοτι το
stdout της προηγούμενης πήγε στο /dev/null. Εκτός αν το sa-learn κάνει κάτι
διαφορετικό μετά stderr και stdout.
> | /usr/bin/spamc | /usr/lib/cyrus-imapd/deliver Inbox
>
> αν το τρέξεις όμως το bash παραπωνιέται:
> bash: syntax error near unexpected token `('
βάλε \ πριν το ( και το ) ή βάλε την εντολή μέσα σε ''.
Αλλά γιατί είναι μέσα σε (), υπάρχει λόγος??
> εγώ κατέθεσα τα όπλα (ίσως και να έχω κάψει νευρώνες βεβαιά[2]) - καμιά
> ιδέα?
προσπάθησε να εκτελέσεις μια προς μια την κάθε εντολή και δές τη επιστρέφει.
Παύλος
More information about the Linux-greek-users
mailing list