Shell Scripts. $ friend=nikos $ echo $friend. $ set grep -n friend. [^a-z] π.χ. echo rm??ee*.txt [1] Nikos

Σχετικά έγγραφα
ΑΣΚΗΣΗ 2 -ΑΚΥΡΩΣΗ ΣΗΜΑΣΙΑΣ ΕΙΔΙΚΩΝ ΧΑΡΑΚΤΗΡΩΝ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Shell Scripts: loops / if / test

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τµήµα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήµατα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 7ο Εργαστήριο

Μερικές άλλες χρήσιμες εντολές

Λειτουργικά Συστήματα

wc -l <file1 10 ή να μετρήσω πόσες γραμμές δίνει μια οποιαδήποτε άλλη εντολή π.χ. η finger : finger wc -l 8

Μερικές άλλες χρήσιμες εντολές

*? [xyz] [^xy] [!0-9] [:alpha:] [:digit:]

Εισαγωγή στα Λειτουργικά Συστήματα

Προγραµµατισµός 2 The shell

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα. Shell Programming

Αβδέλαρου Κωνσταντίνα

Εργαστήριο Λειτουργικών Συστημάτων. Shell Programming

1st exercise of work2 - REMARKS

ΟΛΑ ΤΑ SCRIPT files πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: $*, : ΟΛΑ - Η λίστα (ο πίνακας) με τα ορίσματα $# πλήθος παραμέτρων. one two third parameter

Λειτουργικά Συστήματα. Άσκηση Πράξη. Shell Programming

9ο Εργαστήριο - Ο φλοιός Bash και η διαµόρφωση του

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 9o ΕΡΓΑΣΤΗΡΙΟ

7ο Εργαστήριο - Ο φλοιός Bash και η διαμόρφωση του

Εισαγωγή στα Λειτουργικά Συστήματα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στα Λειτουργικά Συστήματα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

Λειτουργικά Συστήματα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

Επαναληπτικές Ασκήσεις

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

Work9 REMARKS script file MONAZYGA & MESOS OROS

Σενάρια φλοιού (Shell scripts)

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 3o ΕΡΓΑΣΤΗΡΙΟ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version ΗΜΙΤΕΛΗΣ!!!!

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

$ vi pass Κλήση του vi για το αρχείο pass. $ vi pass. :wq

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

Στο εργαστήριο θα μελετηθούν: Διδάσκων: Γιώργος Χατζηπολλάς. Εργαστήριο 2: Εργαλεία Συστήματος UNIX. Ομάδες για παρουσίαση

Προγραμματισμός Διαχείρισης Συστημάτων Ι


ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ I. 1. Εισαγωγή 3 ΠΡΟΛΟΓΟΣ

Εργαστήριο 6 Ασκήσεις: To Εργαλείo Ωφελιμότητας Awk Προγραμματισμός Κελύφους Bash

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

for for for for( . */

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ

Λειτουργικά Συστήματα

Work12 REMARKS script file lab10 ask1-5 tabbing, ls2, urlparse, times, dates_correct

Εισαγωγή στο UNIX. Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Το Shell. Προγραμματισμός II 1

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

ιαχείριση Πληροφοριών στο ιαδίκτυο

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 6o ΕΡΓΑΣΤΗΡΙΟ

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης. 8ο Εργαστήριο

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Τρόποι εγκατάστασης προγράμματος στο Ubuntu / Mint 1. Με το Ubuntu Software Center (ή το αντίστοιχο εργαλείο του Mint) 2.

Λειτουργικά Συστήµατα

Κεφάλαιο 5ο: Εντολές Επανάληψης

Εργαστήριο «Δίκτυα Υπολογιστών Ι»

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Εργαστήριο «Δίκτυα Υπολογιστών Ι»

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

#!/bin/sh #Εμφάνηση μενού του προγράμματος echo "Welcome to a shell implement of Game of Life"

Directories & Files

CYGWIN Οδηγίες Χρήσης (Συγγραφέας: Γιώργος ούκας)

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

Άσκηση 1 η. Επιτήρηση χρήσης πόρων εφαρμογών με Linux Cgroups

CE121 Προγραµµατισµός 2. Εισαγωγή σε Makefiles. CE121 -

Εισαγωγή στην Tcl. Τί είναι η Tcl;

Linux με τη χρήση κονσόλας

ιαχείριση Πληροφοριών στο ιαδίκτυο

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

a = 10; a = k; int a,b,c; a = b = c = 10;

Mε την ονομασία Unix ή μάλλον Unix-like αναφερόμαστε

2.Shell, users, groups και privilegies

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

HY555 Παράλληλα Συστήματα και Grids Χειμερινό εξάμηνο 2007 Άσκηση 3 Εξοικείωση με το EGEE GRID Environment

Λειτουργικά Συστήματα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

ΑΣΚΗΣΗ 4: ΟΜΕΣ ΒΑΣΙΚΩΝ ΒΡΟΧΩΝ

Δημιουργία και εκτέλεση προγραμμάτων. Εντολές εισόδου από το πληκτρολόγιο και εξόδου στην οθόνη.

Transcript:

Shell Scripts Shell Script: ένα αρχείο που περιέχει προς τον φλοιό Επανάληψη O φλοιός (shell) µεσολαβεί µεταξύ πυρήνα και χρήστη, εµφανίζει το prompt π.χ. username@hostname:~$, ερµηνεύει, εκτελεί προγράµµατα... είναι και γλώσσα προγραµµατισµού, δέχεται µεταβλητές και έχει δικές του. File globbing: Eίναι η διαδικασία αντικατάστασης των wildcards που είδαµε στο 3 ο εργαστήριο: * Οποιοδήποτε πλήθος χαρακτήρων? Ένα µόνο χαρακτήρα [abx] Ένα χαρακτήρα από αυτούς που είναι µέσα στα [ ] [a-z ] Ένα χαρακτήρα από αυτούς που βρίσκονται µέσα σε αυτό το εύρος [^a-z] Ένα χαρακτήρα από αυτούς που δεν βρίσκονται µέσα σε αυτό το εύρος Με την εντολή echo µπορούµε να ελέγξουµε αν η αντικατάσταση των χαρακτήρων έγινε όπως θέλαµε π.χ. echo rm??ee*.txt O χαρακτήρας tab µπορεί να χρησιµοποιηθεί για συµπλήρωση εντολών π.χ. ls pu<tab> 1 Με το βελάκι (history) µπορούµε να εκτελέσουµε προηγούµενες (!! η προηγ/νη εντολή,!500) O χαρακτήρας ~ αναφέρεται σε home directory (αυτό δείχνει και η µεταβλητή $ΗΟΜΕ) π.χ. ls ~asidirop Ακύρωση της σηµασίας των ειδικών χαρακτήρων O χαρακτήρας \ αναιρεί την µετασηµασία των ειδικών χαρακτήρων πχ. η εντολή echo \$HOME θα δώσει $ΗΟΜΕ echo 4.the process id is\ \ :\ \ \ \$\$ and cwd $PWD # µε πολλά \, είναι λίγο δυσνόητο Μονά ' ' & διπλά εισαγωγικά " " τα µονά εισαγωγικά ακυρώνουν την ειδική σηµασία όλων των χαρακτήρων (εκτός \) ενώ τα διπλά όλων εκτός $, \,!, " πχ. η εντολή µε µονά εισαγωγικά echo '$HOME' (ακυρώνει την σηµασία του $) θα δώσει $ΗΟΜΕ, ενώ µε διπλά echo "$HOME" θα εµφανίσει το home directory π.χ. /home/student/x0506/chgen Mεταβλητές (ανάκτηση των τιµών τους µε το $ ) Για την ανάκτηση τιµής, πριν από την µεταβλητή µπαίνει ο χαρακτήρας $ π.χ. $ΗΟΜΕ, $PATH, $x Για να δείτε όλες τις µεταβλητές σας, δώστε: set more (βάζουµε το more για να τις δούµε ανά σελίδα) Ορισµός µιας µεταβλητής (µε όνοµα π.χ. friend και τιµή Nikos) στο shell : friend=nikos 2 $ friend=nikos $ echo $friend Nikos $ set grep -n friend Η εντολή set εµφανίζει όλες οι µεταβλητές ενώ η εντολή env ή printenv µόνο µεταβλητές περιβάλλοντος (GLOBAL) Μια µεταβλητή είναι µια ετικέτα µε τιµή, που µπορεί να αλλάξει µε το χρόνο, µε το σύστηµα µε τον χρήστη κτλ. 1 Αν δεν υπάρχει άλλο αρχείο από pu, θα τρέξει η εντολή ls public_html/ 2 Xωρίς κενά πριν και µετά το = Μπορούµε να γράψουµε και friend="nikos" αποθηκεύεται πάντα σαν string (π.χ. a=5 ή τιµή του a είναι string) Μόνο ως προς το περιεχόµενο αλλάζουν (a.string β.ακέραιες c.σταθερές(readonly) d.πίνακες) [1]

Ετσι σε ένα shell script µπορεί π.χ. να µπει η µεταβλητή $ΗΟΜΕ που είναι µια αναφορά στο home directory κάθε χρήστη. Τα ανάποδα εισαγωγικά ` ` προκαλούν εκτέλεση του αποτελέσµατος της εντολής Αν γίνει εκχώρηση σε µια µεταβλητή, το αποτέλεσµα θα επιστραφεί στην µεταβλητή π.χ. d=`date` θα εµφανίσει την ηµεροµηνία µε echo $d Mπορώ να χρησιµοποιήσω και $() δηλ. d=$(date) Τοπικές µεταβλητές (local) Οι τοπικές µεταβλητές διαθέσιµες µόνο στο τρέχον shell π.χ. PPID, friend Χρησιµοποιούνται µόνο από τον φλοιό (παραµετροποίηση φλοιού).. και στα shell scripts vassik@aetos:~/xunix/lab7$ echo "This host is named: $HOSTNAME" This host is named: aetos Οι τοπικές µεταβλητές ισχύουν µόνο µέσα στον τρέχοντα φλοιό. Ο φλοιός περνά σε άλλους φλοιούς τις µεταβλητές µε την εντολή export Συνήθεις Tοπικές µεταβλητές: echo $COLUMNS $LINES # κολόνες & γραµµές τερµατικού 106 24 Τοπικές είναι και οι µεταβλητές που ορίζουµε shell όπως η friend. Τι ισχύει για τις µεταβλητές που ορίζουµε µέσα σε ένα Script µας? Το Script µας τρέχει/καλεί νέο shell Γενικές µεταβλητές (global) Οι global µεταβλητές ή µεταβλητές περιβάλλοντος είναι διαθέσιµες σε όλα τα shell π.χ.ηομε,ps1 η µορφή του prompt user host τρέχον_κατάλογος echo $PS1 ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ Oι µεταβλητές περιβάλλοντος χρησιµοποιούνται από τον φλοιό για να περνάει τιµές στις εφαρµογές που καλεί (παραµετ/ση άλλων εντολών). env ή printenv όλες οι µεταβλητές περιβάλλοντος Συνήθεις µεταβλητές Περιβάλλοντος: /bin/bash echo $HΟΜE $LANG $PWD $EDITOR $LESS $SHELL $USER $TERM $PATH Με το set βλέπω όλες τις µεταβλητές τοπικές και γενικές. H µεταβλητή $? $ echo $? ίνει το exit code της εκτελεσθείσας πριν εντολής (0 για ΟΚ, 0 για λάθη) Πράξεις µε µεταβλητές σε µεταβλητές που περιέχουν αριθµό 3 Ορισµένες µαθηµατικές πράξεις µπορούν να γίνουν µε την εντολή expr, που έχει αυστηρό συντακτικό. Το bash µπορεί να κάνει πράξεις και µε το $[ ] ή µε το $(( )) ή µε το let vassik@aetos:~/xunix/lab7$ x=3; y=4 vassik@aetos:~/xunix/lab7$ echo $x+$y 3+4 vassik@aetos:~/xunix/lab7$ echo $[x+y] 7 vassik@aetos:~$ expr $x + $y 7 ARITHMETIC EVALUATION ( πράξεις +,-,*,/) γίνoνται µε την expr ή µε χρήση $[ ] ή $(( )) 3 Πως θα ελέγξετε αν µια µεταβλητή π.χ. x=13abc έχει µόνο αριθµούς και δεν περιέχει κάποιο γράµµα? echo $x egrep '^[0-9]+$' wc -l #(ενας τροπος) εµφανίζω την µεταβλητή, ψαχνω και µετράω γραµµές Aν µε την παραπάνω εντολή, το αποτέλεσµα είναι 1 (µια γραµµή) σηµαίνει ότι έκανε match το pattern Aν είναι 0 δεν το βρήκε, άρα το x δεν περιέχει ένα αριθµό. [2]

Shell startup scripts Αυτά τα αρχεία εκτελούνται όταν ξεκινά ένα shell ο χρήστης και µερικά βρίσκονται στο home directory. Σε αυτά µπαίνουν όπως ορισµός τoπικών µεταβλητών πχ $PS1 (prompt), µεταβλητών περιβάλλοντος πχ $PATH, alias (ψευδώνυµα) Στα login shells εκτελούνται τα ακόλουθα startup scripts /etc/prole ~/.prole 4 Για να τα δείτε δώστε π.χ. cat /etc/prole cat ~/.prole ~/.bashrc /etc/bashrc.~/.bash* Στα scripts les, σχόλια ανά γραµµή µπαίνουν µε το # ηµιουργία και εκτέλεση Shell script Στο αρχείο $ΗΟΜΕ/.prole µπαίνουν, που θέλουµε να εκτελούνται στην αρχή κάθε σύνδεσής µας. (Μπορεί να επαναορίσει κάποια global settings του /etc/prole ). Σε κάθε γραµµή ενός shell script µπαίνει µια µόνο εντολή (εκτός και αν βάλουµε ; ) ηµιουργούµε αρχείο µε όνοµα showdate µε 2 "echo Simera einai:"; date προς το shell (άρα script) Πατάτε Ctrl+C vassik@aetos:~$ cat > showdate echo "Simera einai:"; date ^C vassik@aetos: Μπορούµε να το εκτελέσουµε : 1. Με την εντολή sh vassik@aetos:~$ sh showdate 2. Nα το κάνουµε εκτελέσιµο και να το τρέξουµε vassik@aetos:~$./showdate Για να γίνει εκτελέσιµο ένα script αρχείο (πχ το test1) πρέπει να έχει δικαιώµατα/mode +x (να έχει +r) ΑΡΧΕΙΟ test1 #! /bin/sh #scriptname: test1 echo -n "Enter your name: " read NAME echo "OK! Hello $NAME" vassik@aetos:~/xunix/lab7$ chmod +x test1 vassik@aetos:~/xunix/lab7$./test1 Enter your name: vassik OK! Hello vassik To αρχείο test1 έστω ότι το φτιάχνουµε µε vi test1 ή µε vim 5 test1 (ή αν είναι µικρό και µε cat >test1) Η πρώτη γραµµή σε ένα script είναι οδηγία 6 για το πώς θα χειριστεί το shell το script π.χ.: #! /bin/sh (εκτελεί bourne shell) ή #! /bin/bash (bash shell) ή άλλο shell H τελευταία γραµµή σε ένα script µπορεί να είναι, το exit status του script ($ echo $? ) exit 0 Η εντολή echo που ξαναεµφανίζει αυτά που τις δίνουµε, µε την option -n δεν αλλάζει γραµµή µετά το µήνυµα (υπενθυµίζεται ότι στην εντολή echo γίνονται όλες οι απαραίτητες αντικαταστάσεις πριν εµφανιστεί το µήνυµα). Για την ανάγνωση δεδοµένων από το πληκτρολόγιο βάζουµε την εντολή : read Για να το εκτελέσουµε δίνουµε όλο το path έτσι π.χ. αν βρίσκεται στο τρέχον directory δίνω./test1 αλλά µπορώ και να δώσω όλο το ~/test1 4 Μέσα στο.prole αναφέρεται if [ -f "$HOME/.bashrc" ] ; then ;. "$HOME/.bashrc" ; δηλ. αν υπάρχει το αρχείο $ΗΟΜΕ /.bashrc, να το τρέξει (µε τελεία ον_αρχείου το τρέχει στο ίδιο shell) 5 Για να ενεργοποιήσετε syntax highlighting στον vim βάλτε την εντολή :sy enable 6 Oταν το # βρίσκεται στην πρώτη γραµµή του αρχείου και ακολουθείται από! τότε δεν είναι σχόλιο αλλά εντολή προς εκτέλεση (π.χ. #! /bin/sh αυτό προφέρεται "Hash-Bang" or "She-Bang"). [3]

To αρχείο.prole # ~/.prole: executed by the command interpreter for login shells. # This le is not read by bash(1), if ~/.bash_prole or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-les for examples. # the les are located in the bash-doc package. # the default umask is set in /etc/prole; for setting the umask # for ssh logins, install and congure the libpam-umask package. #umask 022 # if running bash if [ -n "$BASH_VERSION" ]; then # include.bashrc if it exists if [ -f "$HOME/.bashrc" ]; then. "$HOME/.bashrc" # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" echo "GEIA SOU Vassi" # Μy message Mπορώ στο τέλος του (ή στο.bashrc) να προσθέσω ένα δικό µου µήνυµα Αν µετρήσουµε τις γραµµές του, έχει λιγότερες γραµµές κώδικα από ότι οι άλλες alllines=` cat.prole wc -l ` othlines=` cat.prole egrep '# ^$' wc -l ` echo "Synolo Grammwn:$allLines SxoliaKtl:$[allLines-othLines] grammes" Synolo Grammwn:26 SxoliaKtl:12 grammes Σκριπτάκια 9 ης Εργασίας #Μονά-ζυγά ~vassik/bin/odd #! /bin/bash number=0 echo -n "Enter a number > " read number echo "Number is $number" if [ $((number % 2)) -eq 0 ] ; then echo "Number is even" echo "Number is odd" exit 0 if εντολή then κενό (αλλιώς δεν δουλεύει) if [ $num -eq 0 ] #num=0 if [ $num -ne 0 ] #num 0 [ $num -gt 0 ] >0 [ $num -lt 0 ] <0 [ $num -ge 0 ] >=0 [ $num -le 0 ] <=0 1.Μετατρέψτε το ώστε να τρέχει συνεχώς, και να σταµατάει µόνο όταν number=0 (while) 2.Να γραφεί πρόγραµµα που διαβάζει n αριθµούς (το πλήθος n, θα δίνεται µε read) και υπολογίζει το µέσο όρο των ζυγών αριθµών. Προαιρετικά όποιος θέλει υπολογίζει Το πλήθος των αριθµών που δεν ανήκουν στο διάστηµα (-20,20) Το πλήθος των αριθµών που είναι πολλαπλάσια του 5 και ταυτόχρονα δεν ανήκουν στο (- 20,20). [4]

#Aπλό loop ~vassik/bin/loop6 https://linuxcong.org/bash-scripting-tutorial- 12.2. Bash while loop 17.Arithmetic ~vassik/bin/loop6 #! /bin/bash COUNT=6 # bash while loop while [ $COUNT -gt 0 ]; do echo Value of count is: $COUNT let COUNT=COUNT-1 for (( i=0;i<6;i++)); do echo $i do ή COUNT=$((COUNT-1)) ή. http://www.bashguru.com/2010/12/math-inshell-scripts.html You can do maths using any one of the following methods. 1. Using expr command 2 Using $(()) construct. 3 Using let command 4 Using bc command. 5 Using $[] construct. while εντολή do # Επιλογή από µενού https://linuxcong.org/bash-scripting-tutorial - 9.2. Nested if/ ~vassik/bin/nif vassik@aetos:~/bin$./nif 1. Bash 2. Scripting 3. Tutorial Please choose a word [1,2 or 3]? choice=4 while [ $choice -eq 4 ]; do read choice if [ $choice -eq 1 ] ; then echo "You have chosen word: Bash" echo "You have chosen word:other than Bash" [5]