Bash script - Dates και υπολογισμοί

Είναι δωρεάν, είναι σταθερό, είναι γρήγορο.. ας το γνωρίσουμε και λίγο καλύτερα..

Συντονιστές: Super-Moderators, Software & Hardware Moderators

Απάντηση
Άβαταρ μέλους
agrippas
Script Master
Δημοσιεύσεις: 494
Εγγραφή: 18 Ιούλ 2002 14:52
Τοποθεσία: Υπερπέραν
Επικοινωνία:

Bash script - Dates και υπολογισμοί

Δημοσίευση από agrippas » 09 Ιουν 2006 01:31

Εκεί που καθόμουνα άκαπνος και καμάρωνα τα κατορθώματά μου, μου ήρθε η έμπνευση να δω πόσα λεφτά γλιτώνω. Αυτό το bash script κάνει αυτή τη δουλειά πολύ κυριλέ και όμορφα και σκέφτομαι να το φτιάξω και σε screensaver.

Μπορείτε να αλλάξετε τον κώδικα όπως θέλετε.

Κώδικας: Επιλογή όλων

#!/bin/bash 

# This program is free software. You may use it and distribute it 
# for free under the terms of the GNU public licence.
# USAGE: smoke
# You may want to customize the lines 14-17 to your liking.

# Aris Agrippas
# Copyright ©2006 


# You only need to modify these variables here:

cigsperday=30                       # Cigarettes per day
cigsinpack=20                       # Cigarettes in a pack
priceofpack=6.75                    # Price of pack (in $)
dateIquit="2006-06-01 14:00:00"     # Day and time I quit smoking

# Ok, the rest is my job.

startdate=$(date +%s --date="$dateIquit")
nowtime=$(date +%s)
quit_time_secs=$(expr $nowtime - $startdate)

function calculate {
    echo $* | bc
}

q_week=$(calculate $quit_time_secs/604800)
tmp=$(calculate $quit_time_secs%604800)
q_day=$(calculate $tmp/86400)
tmp=$(calculate $tmp%86400)
q_hour=$(calculate $tmp/3600)
tmp=$(calculate $tmp%3600)
q_minute=$(calculate $tmp/60)
q_second=$(calculate $tmp%60)

function makedatephrase {
    # USAGE: makeString NUMBER DATETYPE
    #   i.e: makeString 4 week
    number=$1
    datetype=$2
    if [ $number -ne 0 ]; then
        echo -n $1 $datetype
        if [ $number -gt 1 ]; then
            echo -n "s"
        fi
        echo -n ", "
    fi
}

echo -ne "Smoke free:\t\t"
echo -ne "$(makedatephrase $q_week week)"
echo -ne "$(makedatephrase $q_day day)"
echo -ne "$(makedatephrase $q_hour hour)"
echo -ne "$(makedatephrase $q_minute minute)"
echo -ne "$(makedatephrase $q_second second)\b\b.\n"

priceofcig=$(calculate "scale=4; $priceofpack/$cigsinpack")
cigs_saved=$(calculate "scale=4; ($cigsperday*$quit_time_secs)/86400")
money_saved=$(calculate "scale=4; $priceofcig*$cigs_saved")

# If a pack costs $priceofpack, then
# a single cigarette costs $priceofcig

echo -e "Cigarettes NOT smoked:\t$cigs_saved"
echo -e "Money saved:\t\t\$$money_saved"

exit 0

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

Bash script - Dates και υπολογισμοί

Δημοσίευση από sibas » 09 Ιουν 2006 04:59

lol 8a to do kai ego tora pou psinome na to kopso ;)

Άβαταρ μέλους
tutankhamun
Δημοσιεύσεις: 6
Εγγραφή: 10 Απρ 2008 06:35

Bash script - Dates και υπολογισμοί

Δημοσίευση από tutankhamun » 10 Απρ 2008 06:54

mipws 8a mporouses file mou san eidikos na me voothiseis na ftiaksw ena bash script poy na upologizei to pli8os ton arxeiwn katw apo twn trexonta fakelo pou to onoma tous na ikanopoiei ena sugkekrimeno pattern kai na mou emfanizei ta sunola ana fakelo kai sunolika???

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3195
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

Bash script - Dates και υπολογισμοί

Δημοσίευση από CyberCr33p » 10 Απρ 2008 12:12

Εάν ψάχνεις για αρχεία που περιλαμβάνουν στο όνομα τους τη λέξη arxeio:

Κώδικας: Επιλογή όλων

ls -la *arxeio* | wc -l

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Bash script - Dates και υπολογισμοί

Δημοσίευση από cpulse » 11 Απρ 2008 00:36

tutankhamun έγραψε:mipws 8a mporouses file mou san eidikos na me voothiseis na ftiaksw ena bash script poy na upologizei to pli8os ton arxeiwn katw apo twn trexonta fakelo pou to onoma tous na ikanopoiei ena sugkekrimeno pattern kai na mou emfanizei ta sunola ana fakelo kai sunolika???
Νομίζω εντελώς off-topic... αλλά ωραία σπαζοκεφαλιά.. μήπως θες αυτό:

Κώδικας: Επιλογή όλων

for dir in `find . -mindepth 1 -maxdepth 1 -type d`; do count=`find $dir -type f -name *arxeio* | wc -l`; echo "$dir: $count"; done

Άβαταρ μέλους
tutankhamun
Δημοσιεύσεις: 6
Εγγραφή: 10 Απρ 2008 06:35

Bash script - Dates και υπολογισμοί

Δημοσίευση από tutankhamun » 11 Απρ 2008 04:13

Thanks a lot guys!!Me voi8isate arketa!!!
kai sorry gia to off-topic!!
Gia tuxon provlimata 8a epanel8w....
:D

Απάντηση

Επιστροφή στο “Linux Guide”

Μέλη σε σύνδεση

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