Πράξεις σε bash scripting

...IDE, compilers, κλπ

Συντονιστής: konnn

Πράξεις σε bash scripting

Δημοσίευσηαπό spyroskaftanis » 28 Φεβ 2011, 21:39

Καλησπέρα!!
Έχω αρχισεί να μαθαίνω bash scripting, διαβάζοντας από το internet ή κοιτώντας βίντεο από αυτό. :geek:
Οπότε προσπαθώντας να φτιάξω μόνος μου ένα απλό σκριπτάκι μου δημηουργήθηκε μια απορία.
Κώδικας: Επιλογή όλων

clear
echo "Καλημέρα Αφεντικό..."
sleep 3

echo " διαλεξε σχημα... "
sleep 2

select ans in\
"τριγωνο"\
"τετραγωνο"\
"EXIT"

do
if [ "$ans" = "EXIT" ];
then
break
fi

if [ "$ans" = "τριγωνο" ];
then
echo "βάση α:"
read a
echo "ύψος β:"
read b
echo "το εμβαδό είναι $a * $b / 2 "

fi


Καταλαβαίνετε τι θέλω να κάνω.
Το πρόβλημα είναι στην τελευταία γραμμή που δίνω (την προτελευταία για την ακρίβεια) [ echo "το εμβαδό είναι $a * $b / 2 "]
Ενώ εγώ περιμένω να μου εφανίσει αποτέλεσμα δινόντας τα α και β μου εμφανίζει απλώς τα νούμερα πάνω.
Κάτι τέτοιο δηλαδή:
Κώδικας: Επιλογή όλων
το εμβαδό είναι 33 * 22 / 2

Πως θα το κάνω να μου δώσει αποτέλεσμα;;;
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: C/C++,Java, Bash, Android┃ Αγγλικά: Μέτρια (B2) | Γαλλικά: Λίγα (Β1)
Λειτουργικό σε Η/Υ ϰ μοντέλο: |ext4| Fedora 20 σε multirama notbook
Προδιαγραφές ⇛ CPU- Intel(R) Core(TM) 2 Duo @ 2.00GHz│ RAM 2GB │Intel Corporation Mobile GM965/GL960|
my personal blog: http://skaftanis.blogspot.com
my fedora blog : http://fedora-gr.blogspot.com/
My New Project: http://showmeyourcode.co.nf/
CEID upatras 3rd year student.
Άβαταρ μέλους
spyroskaftanis
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 538
Εγγραφή: 23 Φεβ 2009, 22:04
Τοποθεσία: Αργολίδα
Εκτύπωση

Re: Πράξεις σε bash scripting

Δημοσίευσηαπό spyroskaftanis » 28 Φεβ 2011, 22:35

Με λίγο παραπάνω ψάξιμο το βρήκα!!
Για την ιστορία όρισα μία νέα μεταβλητή c ώστε
Κώδικας: Επιλογή όλων
c=$[ a * b /2 ]

και μετά
Κώδικας: Επιλογή όλων
echo "το εμβαδό είναι $c"

και δούλεψε!!
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: C/C++,Java, Bash, Android┃ Αγγλικά: Μέτρια (B2) | Γαλλικά: Λίγα (Β1)
Λειτουργικό σε Η/Υ ϰ μοντέλο: |ext4| Fedora 20 σε multirama notbook
Προδιαγραφές ⇛ CPU- Intel(R) Core(TM) 2 Duo @ 2.00GHz│ RAM 2GB │Intel Corporation Mobile GM965/GL960|
my personal blog: http://skaftanis.blogspot.com
my fedora blog : http://fedora-gr.blogspot.com/
My New Project: http://showmeyourcode.co.nf/
CEID upatras 3rd year student.
Άβαταρ μέλους
spyroskaftanis
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 538
Εγγραφή: 23 Φεβ 2009, 22:04
Τοποθεσία: Αργολίδα
Εκτύπωση

Re: Πράξεις σε bash scripting

Δημοσίευσηαπό medigeek » 28 Φεβ 2011, 22:42

http://manpages.ubuntu.com/bc
http://linux.byexamples.com/archives/42 ... ulator-bc/
Κώδικας: Επιλογή όλων
a=4
b=6
calculate=`echo "$a * $b / 2" | bc`
echo "το εμβαδό είναι $calculate"


:clap:
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Πράξεις σε bash scripting

Δημοσίευσηαπό spyroskaftanis » 01 Μαρ 2011, 15:28

Ευχαριστώ για την απάντηση!
Προέκυψε όμως ένα άλλο θέμα:
οι δεκαδικοί.
το σκριπτάκι δεν μου δίνει δεκαδικά αποτελέσματα.
αν για παράδειγμα στο τρίγφωνο δώσω α=3 και β=5
ενώ κανονικά το εμβαδό είναι 7,5 μου δίνει 7.
Το dc ή το dc -l δεν διορθνουν το πρόβλημα...
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: C/C++,Java, Bash, Android┃ Αγγλικά: Μέτρια (B2) | Γαλλικά: Λίγα (Β1)
Λειτουργικό σε Η/Υ ϰ μοντέλο: |ext4| Fedora 20 σε multirama notbook
Προδιαγραφές ⇛ CPU- Intel(R) Core(TM) 2 Duo @ 2.00GHz│ RAM 2GB │Intel Corporation Mobile GM965/GL960|
my personal blog: http://skaftanis.blogspot.com
my fedora blog : http://fedora-gr.blogspot.com/
My New Project: http://showmeyourcode.co.nf/
CEID upatras 3rd year student.
Άβαταρ μέλους
spyroskaftanis
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 538
Εγγραφή: 23 Φεβ 2009, 22:04
Τοποθεσία: Αργολίδα
Εκτύπωση

Re: Πράξεις σε bash scripting

Δημοσίευσηαπό medigeek » 01 Μαρ 2011, 20:21

Κοίταξε τις δύο ιστοσελίδες που έδωσα πιο πάνω :)

Κώδικας: Επιλογή όλων
echo "scale=6; 60/7.02" | bc

6 = διορθωση σε 6 δεκαδικούς αριθμούς (decimal places)
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Πράξεις σε bash scripting

Δημοσίευσηαπό spyroskaftanis » 01 Μαρ 2011, 22:23

Χμμμ
μάλλον έχεις δίκιο, αλλά το έκανα όπως έλεγε ένα απο το link σου και δούλεψε.
το συγκεκριμένο if το διαμόρφωσα έτσι:
Κώδικας: Επιλογή όλων
fi

if [ "$ans" = "τρίγωνο" ];
then
echo "πλευρά τριγώνου :"
read a
echo "ύψος τριγώνου :"
read b
echo $a*$b/2 |bc -l

fi


απευθείας echo δηλαδή χωρίς τα εισαγωγικά και φυσικά dc-l

Ευχαριστώ πολύ για την βοήθεια!!!
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: C/C++,Java, Bash, Android┃ Αγγλικά: Μέτρια (B2) | Γαλλικά: Λίγα (Β1)
Λειτουργικό σε Η/Υ ϰ μοντέλο: |ext4| Fedora 20 σε multirama notbook
Προδιαγραφές ⇛ CPU- Intel(R) Core(TM) 2 Duo @ 2.00GHz│ RAM 2GB │Intel Corporation Mobile GM965/GL960|
my personal blog: http://skaftanis.blogspot.com
my fedora blog : http://fedora-gr.blogspot.com/
My New Project: http://showmeyourcode.co.nf/
CEID upatras 3rd year student.
Άβαταρ μέλους
spyroskaftanis
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 538
Εγγραφή: 23 Φεβ 2009, 22:04
Τοποθεσία: Αργολίδα
Εκτύπωση

Re: Πράξεις σε bash scripting

Δημοσίευσηαπό ieremias » 06 Μαρ 2011, 12:59

Αν και δεν είναι το καταλληλο μέρος...θα θελα να ρωτήσω σε τι περιβάλλον μπορώ να γραψω bash προγραμματα?Πρέπει να κατεβάσω τπτ απο το Ιντερνετ?Είμαι εντελώς αρχάριος στ θέμα αυτο...Π.χ. για να τρέξω ενα στοιχειώδες προγραμμα
#!/bin/bash
# all scripts start like this
#This is a comment
#will give 11 arguments to this program
# a b c d e f g h i j k
echo Number of input parameters = $# # 11
echo Program Name = $0 # ./parameters
echo Other Parameters = $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11
#Other Parameters = a b c d e f g h i a0 a1
echo Other Parameters = $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11}
#Other Parameters = a b c d e f g h i j k
echo All Arguments = $*
#All Arguments = a b c d e f g h i j k

Ευχαριστώ πολύ και συγνώμη για τν ταλαιπωρία
Επιτραπέζιος Η/Υ
OS => Ubuntu 10.10(32-bit) πάνω σε Windows 7 Professional 32-bit(6.1, Build 7600)
Processor => Intel(R) Core(TM) 2CPU 6600 @ 2.40GHz (2 CPUs),~2.4GHz
Memory => 2048MB RAM
Device => NVIDIA GeForce 9500GT (Microsoft Corporation)
ieremias
babeTUX
babeTUX
 
Δημοσιεύσεις: 1
Εγγραφή: 06 Μαρ 2011, 02:38
Εκτύπωση

Re: Πράξεις σε bash scripting

Δημοσίευσηαπό simosx » 06 Μαρ 2011, 14:07

@ieremias: Καλώς ήρθες στο φόρουμ της ελληνικής κοινότητας Ubuntu!

Για προγραμματισμό σε bash (shell scripting) μπορείς να χρησιμοποιήσεις οποιοδήποτε επεξεργαστή κειμένου όπως το κειμενογράφο του Ubuntu (gedit). Βάζεις κατάληξη .sh στα προγράμματά σου και βλέπεις τις εντολές με χρώματα.
Ωστόσο, αν θέλεις να δοκιμάσεις ένα πραγματικά ολοκληρωμένο περιβάλλον, μπορείς να δοκιμάσεις το ShellEd, http://stackoverflow.com/questions/1356 ... or-eclipse
Εδώ, για Ubuntu, πρέπει να εγκαταστήσεις τα Eclipse και ShellEd με το χέρι. Δεν αναφέρεις στην υπογραφή αν γνωρίζεις αρκετά για Linux, οπότε αν έχεις πρόβλημα, ξεκίνησε νέα συζήτηση (Πως εγκαθιστώ το Eclipse).

Πάντως, αν δεν έχεις κάποιο συγκεκριμένο λόγο να μάθεις προγραμματισμό σε Bash, μπορείς να δοκιμάσεις καλύτερα να μάθεις τη γλώσσα Python, που είναι πιο ολοκληρωμένη με μεγαλύτερες δυνατότητες.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση


Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού