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

Σχετικά έγγραφα
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

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

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

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

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

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

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

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

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

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

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

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

Shell Scripts: loops / if / test

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

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

Διάλεξη 7 Εργαλεία Ωφελιμότητας Unix: Αwk

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

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

ΑΣΚΗΣΗ 2 -ΑΚΥΡΩΣΗ ΣΗΜΑΣΙΑΣ ΕΙΔΙΚΩΝ ΧΑΡΑΚΤΗΡΩΝ

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

Προγραµµατιστικές Τεχνικές

Topic 2: Bash Shell Programming * K24: Systems Programming Instructor: Mema Roussopoulou

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

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

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

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

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

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

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

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

char name[5]; /* define a string of characters */

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Βασικά στοιχεία της Java

Εκφράσεις. Τύποι, Σταθερές & Μεταβλητές. Ορισµός Μεταβλητών

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

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

ΕΠΛ 012. JavaScripts

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

Πληρουορική Γ Γσμμασίοσ

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions) 3 ο Εργαστήριο ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - ΕΡΓΑΣΤΗΡΙΟ

επιµέλεια Θοδωρής Πιερράτος

(Regular Expressions) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ/ ΧΕΙΜ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ASPA: A translator from ASP to PHP

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

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

Συµβολοσειρές - Strings

scanf() scanf() stdin scanf() printf() int float double %lf float

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Η γλώσσα προγραμματισμού C

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

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

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop.

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

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

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Επεξεργασία κειμένου και συμβολοσειρών σε C

Θέματα Προγραμματισμού Η/Υ

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

HY340, 2009 Α. Σαββίδης Slide 2 / 143. HY340, 2009 Α. Σαββίδης Slide 3 / 143. HY340, 2009 Α. Σαββίδης Slide 4 / 143

(C) 2010 Pearson Education, Inc. All rights reserved.

Προγραµµατισµός στην Basic

Basic Missions

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ

Φροντιστήριο 1ο Εισαγωγή στο FLEX. Flex. Regular Expressions (1/4)

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Λύβας Χρήστος chrislibas@ssl-unipi.gr Μανουσόπουλος Χρήστος cman@unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

>_ ΚΑΝΟΝΙΚΕΣ ΕΚΦΡΑΣΕΙΣ +- Οι κανονικές εκφράσεις χρησιµοποιούνται από διάφορες εντολές στο unix και κυρίως από την sed, την grep και την awk, οι οποίες έχουν να κάνουν µε την επεξεργασία συµβολοσειρών. +- [ ] Οτιδήποτε περιέχεται στις αγκύλες +-. Ταιριάζει µε οποιονδήποτε χαρακτήρα +- Συµβολοσειρά$ Ταιριάζει patterns που τελειώνουν µε τη Συµβολοσειρά +- ^Συµβολοσειρά Ταιριάζει patterns που αρχίζουν µε τη Συµβολοσειρά +- /^$/ Ταιριάζει κενές γραµµές +- \ Ακυρώνει την ειδική σηµασία των µεταχαρακτήρων

>_ SED (1/7) +- Προκειµένου να αυτοµατοποιήσουµε τις αλλαγές στα περιεχόµενα ενός αρχείου, κάνουµε χρήση κάποιων µηχανισµών. Ένας από αυτούς είναι η εντολή sed. +- Όπως είπαµε και πριν η sed υποστηρίζει κανονικές εκφράσεις και επίσης υποστηρίζει εντολές: +- Αντικατάστασης +- Διαγραφής +- Προσάρτησης +- Παρεµβολής +- Αλλαγής

>_ SED (2/7) +- Όσον αφορά τη δυνατότητα της αντικατάστασης κειµένου σε ένα αρχείο η sed συντάσσεται ως εξής: sed [επιλογές] s/παλιό κείµενο/νέο κείµενο/[παράµετροι] π.χ sed `s/palio/neo/` keimeno.txt +- Επιλογές Ø [g] Εφαρµογή της αντικατάστασης σε όλες τις εµφανίσεις του κειµένου που αντικαθίσταται (global) π.χ sed `s/palio/neo/g` keimeno.txt Ø [αριθµός] Εφαρµογή της αντικατάστασης στη nοστή εµφάνιση ανά γραµµή π.χ sed `s/palio/neo/3` keimeno.txt Ø [w] Εγγραφή των αλλαγών σε αρχείο Ø [p] Εµφάνιση στην οθόνη των γραµµών που αλλάχτηκαν Ø [i] Αγνόηση για πεζά-κεφαλαία π.χ sed `s/palio/neo/3pw` keimeno.txt

>_ SED (3/7) +- Επιλογές: Ø -n Δεν εµφανίζει το αλλαγµένο αρχείο στην οθόνη (η sed από µόνη της εκτελεί µία cat µετά την ολοκλήρωσή της) π.χ sed -n `s/palio/neo/g` keimeno.txt Ø -e Εκτέλεση περισσότερων αλλαγών π.χ sed -e `s/palio/neo/g` e`s/palio1/neo1/g` keimeno.txt Ø -I Αποθήκευση των όποιων αλλαγών +- Σηµαντικό! Μπορούµε να επιλέξουµε σε ποιες γραµµές θέλουµε να εφαρµοστεί η αντικατάσταση. π.χ sed -n `s/palio/neo/3` keimeno.txt +- Επίσης το σύµβολο & λαµβάνει την τιµή του νέου κειµένου π.χ sed -n `s/unipi.gr/nifantop@&/g` keimeno.txt

>_ SED (4/7) +- Άλλα παραδείγµατα sed s/^*a -Z][1-4+*//g keimeno.txt sed s/^.txt$/removed/g keimeno.txt sed 10,90s/^*^t+.* \.txt$/removed/g keimeno.txt sed -i s/ \(^[0-9]\{2,3\}\)*/code removed/1

>_ SED (5/7) +- Μία άλλη δυνατότητα της sed εκτός της αντικατάστασης είναι και η διαγραφή. Στην περίπτωση της διαγραφής έχουµε την εξής σύνταξη: +- sed /keimeno/d π.χ sed /skoupidia.txt/d` +- Πώς διαγράφουµε συγκεκριµένες γραµµές +- n,kd Διαγραφή των γραµµών από την n έως την k +- n,k!d Διαγραφή όλων των γραµµών εκτός των n µε k +- n,$ Διαγραφή όλων των γραµµών από το n και κάτω π.χ sed 5,10d keimeno.txt sed 30,$ keimeno.txt sed /^$/d keimeno.txt sed "/$kati/d keimeno.txt

>_ SED (6/7) +- Μιλήσαµε για την αντικατάσταση και τη διαγραφή. Όµως η sed µας παρέχει επιπλέον προσάρτηση, παρεµβολή κειµένου και αλλαγή ολόκληρης γραµµής. Για να επιτύχουµε αυτές τις λειτουργίες, χρησιµοποιούµε τη σύνταξη: +- sed / palio/διακόπτης\neo +- Διακόπτες: +- a\ Προσάρτηση του νέου κειµένου στην επόµενη γραµµή από το παλιό +- i\ Παρεµβολή του νέου κειµένου στην πάνω γραµµή από το παλιό +- c\ Αλλαγή της γραµµής που περιέχεται το παλιό µε το νέο

>_ SED (7/7) +- Παραδείγµατα: +- Imagine you have a large file ( txt, php, html, anything ) and you want to replace all the words "ugly" with "beautiful" because you just met your old friend Sue again and she/he is coming over for a visit. sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt +- Add this line after every line with WORD sed `/WORD/ a\ ` +- Delete all lines with sed cat /etc/passwd sed `d`

>_ ΥΠΟΛΟΓΙΣΜΟΣ ΕΚΦΡΑΣΕΩΝ (1/3) +- Δεδοµένου ότι ο φλοιός δεν υποστηρίζει πράξεις, χρησιµοποιούµε το βοηθητικό πρόγραµµα expr, προκειµένου να τις υπολογίσουµε. +- Οι πράξεις που υποστηρίζονται µε τα αντίστοιχα σύµβολα είναι + Πρόσθεση - Αφαίρεση - * Πολλαπλασιασµός - / Διαίρεση - % Υπόλοιπο διαίρεσης - = Απόδοση τιµής - == Ισότητα -!= Διάφορο

>_ ΥΠΟΛΟΓΙΣΜΟΣ ΕΚΦΡΑΣΕΩΝ (2/3) +- Παραδείγµατα: expr 1 + 1 expr 20 10 expr 5 \* 5 expr 20 / 3 expr 20 % 3 a = $b [ $a == $b ] [ $a!= $b ] +- Σύνθετα παραδείγµατα: expr 8-3 \* 2 2 expr \( 8-3 \) \* 2 10 expr 10 / 3 + 4 7 expr 20 % \( 7 + 2 \) 2

>_ ΥΠΟΛΟΓΙΣΜΟΣ ΕΚΦΡΑΣΕΩΝ (3/3) +- Υπάρχουν και οι τελεστές συµβολοσειρών substr, index, length +- Έστω ότι έχουµε τη συµβολοσειρά "5283username$$2384/" και θέλουµε να πάρουµε την υποσυµβολοσειρά "username". Για να γίνει αυτό πρέπει να διαβάσουµε από τη θέση 5 για µήκος 8. Οι παράµετροι της substr είναι η συµβολοσειρά εισαγωγής, η αρχική θέση και το µήκος. USER=`expr substr $INPUT 5 8` π.χ expr substr transputer 4 5 nsput +- index String1 String2 Επιστρέφει την πρώτη θέση στο String1 όπου υπάρχει κάποιος χαρακτήρα του String2. π.χ expr index smalltalk btr 6 +- length String1 Επιστρέφει το µήκος του String1 π.χ expr length systems 7

>_ ΑΣΚΗΣΗ +- Να γραφεί ένα πρόγραµµα για το κέλυφος που να εκτελεί απλές αριθµητικές πράξεις (πρόσθεση, αφαίρεση, πολλαπλασιασµός, διαίρεση και υπόλοιπο), µεταξύ δύο ακεραίων #!/bin/bash #Usage: math n1 op n2 case $2 in +) echo Addition requested. echo $1 + $3 = `expr $1 + $3` ;; -) echo Substraction requested. echo $1 - $3 = `expr $1 - $3` ;; \*) echo Multiplication requested. echo $1 * $3 = `expr $1 \* $3` ;; /) echo Division requested. echo $1 / $3 = `expr $1 / $3` ;; %) echo Modulo arithmetic requested. echo $1 % $3 = `expr $1 % $3` ;; *) echo Unknown operation specified. ;; esac

>_ ΑΣΚΗΣΗ +- Να γραφεί ένα πρόγραµµα για το κέλυφος που να αντιστρέφει δεδοµένες συµβολοσειρές, καθώς επίσης να υπολογίζει και τα µήκη τους #!/bin/bash # Usage: revstrs [string1 [string2...]] for str do strlen=`expr length "$str"` chind=$strlen while test $chind -gt 0 do echo -n `expr substr \"$str\" $chind 1` chind=`expr $chind - 1` done echo -n --> echo -n $strlen echo character(s). done

>_ ΑΝΑΖΗΤΗΣΗ ΣΕ ΑΡΧΕΙΑ (1/2) +- Προκειµένου να αναζητήσουµε γραµµές µέσα στο αρχείο, οι οποίες να ταιριάζουν µε τα κλειδιά της αναζήτησης χρησιµοποιούµε την εντολή grep, η οποία επιστρέφει τη γραµµή που ταιριάζει µε τα κριτήριά µας. Πιο συγκεκριµένα συντάσσεται: +- grep [επιλογές] [τι αναζητούµε] [όνοµα αρχείου] +- [-n] Εµφανίζει τον αριθµό της γραµµής που βρέθηκε η λέξη +-π.χ grep -n action movies.txt +- 3:terminator;expendables;... +- [-i] Αγνοεί πεζά και κεφαλαία +- [-w] Αναζητά µόνο ολόκληρες λέξεις +- π.χ grep -w action movies.txt +- δεν θα επιστρέψει κάτι

>_ ΑΝΑΖΗΤΗΣΗ ΣΕ ΑΡΧΕΙΑ (2/2) +-[-v] Αναζητά τις γραµµές που δεν περιέχουν τη λέξη κλειδί +-[-c] Εµφανίζει µόνο το πλήθος των γραµµών +- Σε περίπτωση που κάνουµε συνδυασµό των επιλογών και χρησιµοποιήσουµε την grep vc τι αποτέλεσµα θα έχουµε???

>_ ΑΣΚΗΣΗ Να γραφεί ένα πρόγραµµα για το κέλυφος που να εµφανίζει τους καταλόγους που βρίσκονται κάτω από το δεδοµένο κατάλογο, σε οποιοδήποτε βάθος, καθώς επίσης και την ηµεροµηνία και την ώρα της τελευταίας τροποποίησης τους (ή δηµιουργίας τους). #! /bin/sh if [ $# -eq 0 ] then elif [ $# -ge 2 ] fi then else echo "Exactly one argument is required" echo "Too many arguments" ls-rl $1 grep '^d

>_ ΑΣΚΗΣΗ Να γραφεί ένα πρόγραµµα για το κέλυφος που να εµφανίζει στην οθόνη κάποιο µήνυµα µόνο την πρώτη φορά που εκτελείται κατά τη διάρκεια µιας ηµέρας. #! /bin/sh cur_date=`date +%d%m%y` last_date="" if [ -s $HOME/.date ] then fi last_date=`cat $HOME/.date` echo "$cur_date" > $HOME/.date if [ "$last_date"!= "$cur_date" ] then echo "Hello!! How are you today?" fi

>_ ΑΣΚΗΣΗ Να γραφεί ένα πρόγραµµα για το κέλυφος που να εµφανίζει όλα τα αρχεία µε την κατάληξη.html του φακέλου και να γράφει την πρώτη γραµµή κάθε αρχείου σε ένα αρχείο που θα ονοµάζεται File_Heads. #!/bin/sh # This is a comment echo "List of files:" ls -la FILE_LIST="`ls *.html`" echo FILE_LIST: ${FILE_LIST} RESULT="" for file in ${FILE_LIST} do done FIRST_LINE=`head -2 ${file}` RESULT=${RESULT}${FIRST_LINE} echo ${RESULT} cat >FILE_HEADS echo "'$RESULT' written Script done. "

>_ ΑΣΚΗΣΗ Να γραφεί ένα πρόγραµµα για το κέλυφος που να περιέχει την µέθοδο add() που αθροίζει δυο αριθµούς. #!/bin/sh add() { x=$1 y=$2 z=$(($x+$y)) echo "$z } x=1 y=2 add$x $y

My software never has bugs. It just develops random features. anonymous