Από ΓΛΩΣΣΑ ( Γ' Λυκείου ) σε BASH

...ανακοινώσεις, νέα, συζητήσεις, γενικά θέματα, οργάνωση

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

Re: Από ΓΛΩΣΣΑ ( Γ' Λυκείου ) σε BASH

Δημοσίευσηαπό the_eye » 02 Ιούλ 2012, 01:44

Off topic:
Ο alkisg (http://alkisg.mysch.gr/) είναι μέλος του forum και συχνάζει και στο irc στο κανάλι #ubuntu-gr
Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-58-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu)
3 Intel Core i3-6100 CPU @ 3.70GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Οδηγοί Ubuntu Βίντεο Οδηγοί
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11673
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση

Re: Από ΓΛΩΣΣΑ ( Γ' Λυκείου ) σε BASH

Δημοσίευσηαπό pc_magas » 02 Ιούλ 2012, 12:32

Πλάκα πλάκα παρόλο οπου πάω πανεπιστήμιο καταλαβαίνω καλύτερα αυτόν τον οδηγό για προγραμματισμό σε bash παρά οποιονδήποτε άλλο. Και ας ξέρω C και java
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2598
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Από ΓΛΩΣΣΑ ( Γ' Λυκείου ) σε BASH

Δημοσίευσηαπό spyroskaftanis » 02 Ιούλ 2012, 13:46

Qdata έγραψε:Ενδιαφέρον και κατατοπιστικός ο οδηγός σου! :thumbup:
Για να λύσεις τις απορίες σου:

Παράδειγμα πινάκων:
Κώδικας: Επιλογή όλων
$ #Δήλωση καινούργιου πίνακα:
$ declare -a array
$ #Εκχώρηση τιμών στον πίνακα:
$ array=(1 2 3 4 5)
$ #Προβολή όλων των περιεχομένων του πίνακα:
$ echo ${array[*]}
1 2 3 4 5
$ #Προβολή μόνο της πρώτης θέσης του πίνακα:
$ echo ${array[0]}
1
$ #Εκχώρηση μιας νέας τιμής σε νέα θέση του πίνακα:
$ array[5]=6
$ #Προβολή όλων των περιεχομένων του πίνακα:
$ echo ${array[*]}
1 2 3 4 5 6
$ #Διαγραφή της δεύτερης θέσης του πίνακα:
$ unset array[1]
$ #Προβολή όλων των περιεχομένων του πίνακα:
$ echo ${array[*]}
1 3 4 5 6
$ #Διαγραφή όλου του πίνακα:
$ unset array
$ echo ${array[*]}

$


Όπως βλέπεις δεν χρειάζεται να δηλώσεις τον αριθμό θέσεων του πίνακα και μπορείς να εκχωρήσεις οτιδήποτε μέσα στον πίνακα.

Συναρτήσεις:
Κώδικας: Επιλογή όλων
$ #Δημιουργία συνάρτησης:
$ function func { echo "This is a function."; }
$ #ή func () { echo "This is a function."; } είναι το ίδιο
$ #Κλήση της συνάρτησης:
$ func
This is a function.
$ #Δημιουργία συνάρτησης με μία παράμετρο:
$ function func { echo "Hello, $1."; }
$ #Κλήση της συνάρτησης με την παράμετρο "George"
$ func George
Hello, George.
$


Αυτά είναι τουλάχιστον τα βασικά. Ελπίζω να σε βοήθησα! :)


Σε ευχαριστώ πολύ !!!
Μπορεί να τα βάλω και αυτά σε ένα δεύτερο μέρος!
Μήπως ξέρεις και πως φτιάχνουμε δισδιάστατους πίνακες?
Γνώσεις ⇛ 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

Δημοσίευσηαπό clepto » 03 Ιούλ 2012, 01:22

deb πακέτο μπορώ να βρω κάπου; γιατί εγκατέστησα το Linux mint και δεν πιάνει το ppa
Κώδικας: Επιλογή όλων
[sudo] password for chris:
Άγνωστη έκδοση: maya.
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Από ΓΛΩΣΣΑ ( Γ' Λυκείου ) σε BASH

Δημοσίευσηαπό Qdata » 03 Ιούλ 2012, 01:45

spyroskaftanis έγραψε:Σε ευχαριστώ πολύ !!!
Μπορεί να τα βάλω και αυτά σε ένα δεύτερο μέρος!
Μήπως ξέρεις και πως φτιάχνουμε δισδιάστατους πίνακες?


Κανονικά δεν γίνετε να δημιουργήσεις δισδιάστατους πίνακες σε bash αλλά μπορείς να δημιουργήσεις έναν πίνακα στον οποίο θα προσθέτεις στοιχεία με ένα συγκεκριμένο αλγόριθμο για να κατατάσσονται με τέτοιο τρόπο, στον πίνακα, ώστε να μπορείς στη συνέχεια να τα πάρεις με κάποιον άλλο αλγόριθμο στον οποίο θα ορίζεις την "γραμμή" και την "στήλη".

Εγώ θα σου πρότεινα να μην κάνεις χρήση του δισδιάστατου πίνακα σε bash και να καταφεύγεις σε κάτι άλλο. Δεν νομίζω να είναι κάτι βολικό αλλά να θέλεις οπωσδήποτε να δημιουργήσεις έναν "τεχνητό" δισδιάστατο πίνακα τότε πες για να σου γράψω τον αλγόριθμο (τον οποίο δεν θυμάμαι ακριβώς αυτή την στιγμή αλλά αν κάτσω να παιδευτώ στο bash θα το βρω).

Edit:

Μόλις ανακάλυψα πως γίνετε και έτσι:
Κώδικας: Επιλογή όλων
$ #Δημιουργία του πίνακα που θα χρησιμοποιηθεί:
$ declare -a array
$ #Δημιουργία της συνάρτησης για προσθήκη στον πίνακα:
$ add() { i="$1";j="$2";value="$3";array[$((i*10+j))]="$value"; }
$ #Προσθήκες σε διάφορες θέσεις:
$ add 0 0 "this_is_0_0"
$ add 0 1 "this_is_0_1"
$ add 4 6 "this_is_4_6"
$ add 8 8 "this_is_8_8"
$ #Δημιουργία συνάρτησης για προβολή κάποιας θέσης του πίνακα:
$ get() { i="$1";j="$2"; echo "${array[$((i*10+j))]}"; }
$ #Προβολή κάποιων θέσεων του πίνακα:
$ get 0 0
this_is_0_0
$ get 0 1
this_is_0_1
$ get 0 2

$ get 4 6
this_is_4_6
$ get 8 8
this_is_8_8
$


Απλώς χρησιμοποίησε τις συναρτήσεις add και get έτσι όπως είναι αλλάζοντας το 10 που βλέπεις. Το 10 σημαίνει πως ο πίνακας θα είναι 10x10.
Linux User: #530165
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός: Ναι ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ Ubuntu 11.04 32bit σε Intel(R) Atom(TM) CPU N270 @ 1.60GHz
(Notebook) Προδιαγραφές ⇛ 2x Intel(R) Atom(TM) CPU N270 @ 1.60GHz │ 1016MB │ HDA-Intel - HDA Intel -- USB-Audio - USB AUDIO│ 1024x600 pixels
Νέος στο Linux?Οδηγοί - How to - Tutorials
Qdata
powerTUX
powerTUX
 
Δημοσιεύσεις: 1875
Εγγραφή: 18 Ιουν 2010, 19:40
Τοποθεσία: Σέρρες
IRC: dimos
Εκτύπωση

Προηγούμενη

Επιστροφή στο Εκπαιδευτική Κοινότητα του Ubuntu (Συζητήσεις, Νέα, Ανακοινώσεις)

cron