Αλλαγή γραμματοσειράς
Ημερομηνία Πέμ Απρ 18, 2019 5:44 pm
foss.aueb.gr

Προγραμματισμός

Τα δικά μας script !

Σχετικά με τον προγραμματισμό

Τα δικά μας script !

Δημοσίευσηαπό Master_ex » Τετ Μάιος 13, 2009 10:00 pm

Είπα να φτιάξω αυτό το θέμα για να μοιραζόμαστε scriptάκια που θεωρούμε χρήσιμα μεταξύ μας και που ίσως λύνουν τα χέρια σε καποιον που δεν έχει χρόνο να σκεφτεί/γράψει τα δικά του.

Ας αρχίσω πτώτος λοιπόν και ας μοιραστώ τα εξής:

Πρόβλημα 1: Ήθελα σε ένα directory που περιείχε μόνο εικόνες με μέγεθος 256*256 πίξελ να τις μικρύνω στα 90*90.

Λύση:
Κώδικας: Επιλογή όλων
#!/bin/bash
for i in $(ls); do
   if [ $i = "resize" ]; then
      echo "ALL ok"
      break;
   fi
   echo " Now converting $i"
   convert -geometry '90x90!' $i $i
done

Το if υπάρχει γιατί είχα εκτός από τις εικόνες και το script μέσα και δεν ήθελα να βγαίνει το error :tongue:
Τώρα η εντολή που κάνη όλη τη δουλειά είναι η convert -geometry '90x90!' $i $i που μέσα στα '' δέχεται το νέο μέγεθος. Το ! μετά δηλώνει πως θα το κάνει σε αυτό το μέγεθος. Διαφορετικά πηγαίνει αναλογικά π.χ. αν ήταν 900*950 θα γινόταν 90*95. Τα επόμενα δύο ορίσματα είναι με τη σειρά όνομα αρχείου που κάνει resize και νέο όνομα αρχείου.

Για την εκτέλεση του παραπάνω χρειάζεται το ImageMagick.

Πρόβλημα 2: Για την εγκατάσταση νέων smilies ( emoticons ) στη phpbb3 χρειάζεται να βάλεις τα νέα emoticons στο directory ../forum/images/smilies και χρειάζεται και ένα αρχείο smilies.pak . Ύστερα μέσα από το panel του admin εισάγονται τα εικονίδια. Πολλά smilies που υπάρχουν δεν συνοδεύονται από smilies.pak .

Λύση:
Κώδικας: Επιλογή όλων
#!/bin/bash

for i in $(ls); do
    if [ $i != "replace" ]; then
   declare x="'$i','"
   declare y=$(identify $i | head -n1 | cut -d" " -f3 | cut -d"x" -f1)
   x="$x$y','"
   declare y=$(identify $i | head -n1 | cut -d" " -f4 | cut -d"x" -f1)
   x="$x$y','0','"
   y=$(echo $i | cut -d"_" -f2 | cut -d"." -f1)
   x="$x$y',':$y:',"
   echo $x
    fi;
done


Απλά εκτελέστε το παραπάνω script σε ένα προσωρινό directory που θα πρέπει να περιλαμβάνει μόνο τις νέες εικόνες. Ύστερα βάλτε τις νέες εικόνες και το smilies.pak στο σωστό directory και θα τις εισάγετε χωρίς κανένα πρόβλημα από το panel του admin.

Θα χρειαστεί να κάνετε redirect το output
Κώδικας: Επιλογή όλων
replace > smilies.pak


Προφανώς το πρώτο script το ονόμασα resize και το δεύτερο που έγραψα μαζί με τον Ιβάν πάνω σε έναν δημιουργικό οίστρο το ονόμασαμε replace. :mrgreen:

ΑΥΤΑ :ugeek:
Άβαταρ μέλους
Master_ex
Moderator
 
Δημοσ.: 258
Εγγραφη: Παρ Μάιος 08, 2009 12:14 am
Operating System: .:/ arch \:.

Re: Τα δικά μας script !

Δημοσίευσηαπό dialecti » Πέμ Μάιος 14, 2009 12:14 am

:thumleft: :thumleft: :thumright: :thumright: :geek:
τα smilies μιλούν από μόνα τους :) :) :)
Άβαταρ μέλους
dialecti
Open Member
 
Δημοσ.: 27
Εγγραφη: Δευτ Μάιος 11, 2009 11:25 am

Re: Τα δικά μας script !

Δημοσίευσηαπό c00kiemon5ter » Πέμ Μάιος 14, 2009 12:19 am

λολ :geek: το 2ο θέλει φτιάξιμο, πολύ αργό. :rendeer:

Κώδικας: Επιλογή όλων
man sed
Τελευταία επεξεργασία απο c00kiemon5ter την Πέμ Μάιος 14, 2009 3:10 am, επεξεργάστηκε 1 φορές συνολικά.
Computers are simple. You just write an instruction and they follow it.
Εικόνα
a cookie! ~ i.will.do.science.to.it! Εικόνα
Άβαταρ μέλους
c00kiemon5ter
cookie hunter
 
Δημοσ.: 554
Εγγραφη: Δευτ Μάιος 11, 2009 1:55 am
Τοποθεσια: (void *)NULL
Operating System: ~ Arch ~ .: Gentoo :.

Re: Τα δικά μας script !

Δημοσίευσηαπό Master_ex » Πέμ Μάιος 14, 2009 2:50 am

Στο done ... υπάρχει μια μπάρα στο πλάι αν δεν το πρόσεξες :tongue:
Άβαταρ μέλους
Master_ex
Moderator
 
Δημοσ.: 258
Εγγραφη: Παρ Μάιος 08, 2009 12:14 am
Operating System: .:/ arch \:.

Re: Τα δικά μας script !

Δημοσίευσηαπό c00kiemon5ter » Πέμ Μάιος 14, 2009 3:09 am

Master_ex έγραψε:Στο done ... υπάρχει μια μπάρα στο πλάι αν δεν το πρόσεξες :tongue:

δε το πρόσεξα :weelchairbb:
Computers are simple. You just write an instruction and they follow it.
Εικόνα
a cookie! ~ i.will.do.science.to.it! Εικόνα
Άβαταρ μέλους
c00kiemon5ter
cookie hunter
 
Δημοσ.: 554
Εγγραφη: Δευτ Μάιος 11, 2009 1:55 am
Τοποθεσια: (void *)NULL
Operating System: ~ Arch ~ .: Gentoo :.

Re: Τα δικά μας script !

Δημοσίευσηαπό cyberpython » Πέμ Μάιος 28, 2009 5:21 pm

Ένα bash script που παίρνει μία πρός μία όλες τις εικόνες ενός φακέλου και τις ορίζει ως wallpaper σε GNOME:
Κώδικας: Επιλογή όλων
#!/bin/bash
# Author: George "cyberpython" Migdos ( cyberpython@gmail.com )
#   ---------------------------------------------------------------------   #
#   *** WARNING: The folder must only contain valid wallpaper images ****   #
#   ---------------------------------------------------------------------   #
wallpapers_folder="/home/cyberpython/Εικόνες/wallpapers/free/lemonade" #change this to your wallpapers folder
display_time=3 #time in seconds

while [ 1 ]
do
   for image in $wallpapers_folder/*
   do      
      gconftool-2 --type str --set /desktop/gnome/background/picture_filename $image
      sleep $display_time
   done
done

exit 0
Άβαταρ μέλους
cyberpython
Open Member
 
Δημοσ.: 66
Εγγραφη: Τετ Μάιος 20, 2009 10:50 pm
Operating System: Ubuntu

Re: Τα δικά μας script !

Δημοσίευσηαπό arpl » Παρ Μάιος 29, 2009 12:20 am

Όπου βλέπετε $ δεν το πληκτρολογείτε. Δεν είναι μέρος της εντολής. Και για όσους αναρωτιούνται πως να τρέξουν ένα bash script όπως αυτά που φιλοξενούνται εδώ, ακολουθεί η απάντηση σε απλά ελληνικά(νομίζω). Έχουμε και λέμε

Δημιουργούμε ένα αρχείο με το όνομα που θέλουμε και το "γεμίζουμε" με τα ωραία scripts που γράφουν οι άλλοι για μας.
Στη συνέχεια σώζουμε το αρχείο και σε ένα τερματικό δίνουμε την εντολή
Κώδικας: Επιλογή όλων
$chmod +x όνομα_αρχείου

Και για να δούμε και τι κάνει το script πληκτρολογούμε
Κώδικας: Επιλογή όλων
$./όνομα_αρχείου


Σημειώσεις

Έστω ότι τα αρχεία είναι ένα αντικείμενο. Το αντικείμενο αυτό έχει κάποια χαρακτηριστικά. Ένα από αυτά είναι το EXECUTE. Άλλα τέτοια
είναι το READ και το WRITE. Μπορούμε λοιπόν να φανταστούμε ότι τα χαρακτηριστικά αυτά τα ενεργοποιώ και τα απενεργοποιώ. Η εντολή chmod παίρνει ως όρισμα το σύμβολο + που διαβάζετε ως "ενεργοποίησε" το χαρακτηριστικό που ακολουθεί. Στην περίπτωσή μας αυτό είναι το 'x' το οποίο αποτελεί συντόμευση του EXECUTE. Για παράδειγμα η εντολή
Κώδικας: Επιλογή όλων
$chmod +xw some_file
ενεργοποιεί τα χαρακτηριστικά EXECUTE και WRITE στο αρχείο με όνομα some_file. Αν λοιπόν διάβαζα της εντολή 8α ακούγονταν κάπως έτσι "Άλλαξε την κατάσταση του αρχείου(chmod which stands for change mode) προσθέτοντας(+) του το χαρακτηριστικό της εκτελεσιμότητας(x)".

Και δυο κουβέντες για το ./ τι στο καλό τρέχει μ'αυτά τα σύμβολά;;; Απλά λέω στο bash shell ότι θέλω να τρέξει το αρχείο από τον τρέχοντα φάκελο που συντομεύεται ως η τελεία(.) και μετά όπως και για οποιοδήποτε φάκελο αν θέλω να αναφερθώ στα αρχεία του βάζω ένα slash / και πλέον έχω το όνομα του προγράμματος που ζητάς από το shell να τρέξει. Αν δεν καταλάβατε τότε δοκιμάστε να τρέξετε ένα πρόγραμμα με το όνομά του και μετά με το πλήρες όνομά του. Για παράδειγμα η εντολή $ls έχει όνομα $/bin/ls. Άρα με την τελεία και το slash προσδιορίζω μονοσήμαντα σε πιο αρχείο αναφέρομαι ως προς τον τρέχων φάκελο.
Με άλλα λόγια το bash ξέρει ακριβώς που αναφέρομαι.
Τελευταία επεξεργασία απο arpl την Δευτ Ιούλ 06, 2009 5:27 pm, επεξεργάστηκε 2 φορές συνολικά.
Άβαταρ μέλους
arpl
Open Member
 
Δημοσ.: 66
Εγγραφη: Πέμ Μάιος 07, 2009 5:34 pm
Τοποθεσια: /dev/null
Operating System: NONE

Re: Τα δικά μας script !

Δημοσίευσηαπό c00kiemon5ter » Τρί Ιουν 30, 2009 2:26 pm

english to greek one-line translator !! :P

Βάζετε αυτό στο ~/.bashrc
Κώδικας: Επιλογή όλων
# translate a word
translate() {
        curl -s http://www.in.gr/dictionary/lookup.asp?Word=$1 | grep -i explanation | tr [\</?\>] '\n' | grep : | sed -n '2p' | sed -e 's/[:. ]//g' | iconv -f=ISO-8859-7 -t=UTF-8
}


και δίνετε
Κώδικας: Επιλογή όλων
source ~/.bashrc


το χρησιμοποιείτε ως εξής
Κώδικας: Επιλογή όλων
translate <word>


tadaah!
φαί τώρα :arrow:
Computers are simple. You just write an instruction and they follow it.
Εικόνα
a cookie! ~ i.will.do.science.to.it! Εικόνα
Άβαταρ μέλους
c00kiemon5ter
cookie hunter
 
Δημοσ.: 554
Εγγραφη: Δευτ Μάιος 11, 2009 1:55 am
Τοποθεσια: (void *)NULL
Operating System: ~ Arch ~ .: Gentoo :.

Re: Τα δικά μας script !

Δημοσίευσηαπό c00kiemon5ter » Κυρ Ιούλ 05, 2009 3:03 pm

Κώδικας: Επιλογή όλων
# translate a word
translate() {
        curl -s http://www.in.gr/dictionary/lookup.asp?Word=$1 | grep -i explanation | tr [\</?\>] '\n' | grep : | sed -n '2p' | sed -e 's/^\.\?[[:space:]]\|[:.]//g' | iconv -f=ISO-8859-7 -t=UTF-8
}


αυτά, απλά φτιάχνει κάποια κενά που έτρωγε πριν,..
τώρα μπορούμε να φτιάξουμε και λεξικό
Computers are simple. You just write an instruction and they follow it.
Εικόνα
a cookie! ~ i.will.do.science.to.it! Εικόνα
Άβαταρ μέλους
c00kiemon5ter
cookie hunter
 
Δημοσ.: 554
Εγγραφη: Δευτ Μάιος 11, 2009 1:55 am
Τοποθεσια: (void *)NULL
Operating System: ~ Arch ~ .: Gentoo :.

Re: Τα δικά μας script !

Δημοσίευσηαπό c00kiemon5ter » Δευτ Ιούλ 06, 2009 1:41 pm

Κώδικας: Επιλογή όλων
# translate a word
translate() {
        curl -s http://www.in.gr/dictionary/lookup.asp?Word=$(echo $@ | sed -e 's/ /+/') | grep -i explanation | tr [\</?\>] '\n' | grep : | sed -n '2p' | sed -e 's/^\.\?[[:space:]]\|[:.]//g' | iconv -f=ISO-8859-7 -t=UTF-8
}


και πάνω από μία λέξεις, πχ
Κώδικας: Επιλογή όλων
translate make love
Computers are simple. You just write an instruction and they follow it.
Εικόνα
a cookie! ~ i.will.do.science.to.it! Εικόνα
Άβαταρ μέλους
c00kiemon5ter
cookie hunter
 
Δημοσ.: 554
Εγγραφη: Δευτ Μάιος 11, 2009 1:55 am
Τοποθεσια: (void *)NULL
Operating System: ~ Arch ~ .: Gentoo :.

Επόμενο

Επιστροφή στην Προγραμματισμός

cron
foss.aueb.gr

Μελη σε συνδεση

Συνολικά υπάρχουν 0 μέλη συνδεδεμένα: 0 εγγεγραμμένο, 0 κρυφοί και 0 επισκέπτης (με βάση τα μέλη που έχουν συνδεθεί τα τελευταία 5 λεπτά)
Περισσότερα μέλη σε σύνδεση 167 την Κυρ Οκτ 02, 2016 2:55 am

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες

Γενέθλια

Κανένα μέλος δεν έχει γενέθλια σήμερα