Bash - kontynuacja. Bash - kontynuacja 1/36



Podobne dokumenty
Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Tablice, procesy, sygnały i nie tylko. Kurs systemu Unix 1

System operacyjny Linux

Bash - wprowadzenie. Bash - wprowadzenie 1/39

PowerShell. Sławomir Wawrzyniak

Powłoka (shell) Powłoka ksh

- wszystkie elementy - wszystkie elementy

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Środowisko programisty Zestaw 7

1 Przygotował: mgr inż. Maciej Lasota

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Sieci i systemy operacyjne I Ćwiczenie 3. Przekierowania strumieni we/wy. Filtry.

ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:

Środowisko programisty

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

for (i=1; i<=10; i=i+1) instrukcja; instrukcja zostanie wykonana 10 razy for (inicjalizacja; test; aktualizacja) instrukcja;

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Systemy operacyjne. Programowanie w shellu: BASH. Wydział Inżynierii Metali i Informatyki Przemysłowej

Powłoka bash. Kurs systemu Unix 1

Podstawy obsługi systemów UNIX/Linux

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Przekierowanie wejścia wyjścia:

PODSTAWY INFORMATYKI

PERSON Kraków

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

Wprowadzenie do programowania w powłoce

3S TeleCloud - Aplikacje Instrukcja użytkowania usługi 3S KONTAKTY

Instrukcja obsługi. Oprogramowanie SAS 31

enova Workflow Obieg faktury kosztowej

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

Architektura systemów informatycznych. Powłoka systemowa Architektura procesora

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

System operacyjny Linux

Systemy operacyjne 11

Programowanie w BASH u Skrypt do ćwiczeń

CitiDirect Online Banking. Powiadomienia

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Pętle w PERLU postać ogólna

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Biblioteka AutoCad V 5.0 Poradnik uŝytkownika

PODSTAWY DZIAŁANIA UKŁADÓW CYFROWYCH

Podstawy Informatyki Gramatyki formalne

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Moduł Pulpit opcji oraz Narzędzia. Opis v 1.0

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Pracownia internetowa w ka dej szkole (edycja 2004/2005)

WYRAŻENIA REGULARNE I JĘZYK AWK

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne

Windows Serwer 2008 R2. Moduł 3. DHCP

I. Tryb linii komend w systemach DOS/Windows.

Zmiany w programie C GEO v. 6.5

Wstęp do programowania

Programowanie skryptów powłoki

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

WAGA ELEKTRONICZNA SM-5100

8. Strumienie i filtry w systemach Linux

Uniwersytet Rzeszowski

Ekran startowy płyty instalacyjnej umozliwia nam wybór

Automatyzacja procesu publikowania w bibliotece cyfrowej

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Komunikacja sterownika z rodziny Micro800 z Falownikiem PowerFlex40 przy pomocy sieci DeviceNet.

SFML. (Simple and Fast Multimedia Library)

Microsoft Management Console

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Wstęp do systemów wielozadaniowych laboratorium 19 awk

I. Zakładanie nowego konta użytkownika.

Podstawy programowania

Wykład 4 Wybrane zagadnienia programowania w C++

Technologie Informacyjne - Linux 2

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Powłoka interpreter poleceń systemu UNIX

WYKŁAD 1 SYSTEMY CMS CZĘŚĆ 1

PL/SQL. Zaawansowane tematy PL/SQL

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

Laboratorium Ubuntu Linux.

Elementy cyfrowe i układy logiczne

elektroniczna Platforma Usług Administracji Publicznej

Kalkulator Kalorii by CTI. Instrukcja

Ćwiczenie nr 2 Zbiory rozmyte logika rozmyta Rozmywanie, wnioskowanie, baza reguł, wyostrzanie

JTW SP. Z OO. Zapytanie ofertowe. Zakup i dostosowanie licencji systemu B2B część 1

P 0max. P max. = P max = 0; 9 20 = 18 W. U 2 0max. U 0max = q P 0max = p 18 2 = 6 V. D = T = U 0 = D E ; = 6

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

STRONA GŁÓWNA SPIS TREŚCI. Zarządzanie zawartością stron... 2 Tworzenie nowej strony... 4 Zakładka... 4 Prawa kolumna... 9

Laboratorium Podstawy Przetwarzania Rozproszonego SPRAWOZDANIE z zadania SERWIS KOMPUTEROWY

Archiwum Prac Dyplomowych

WSTĘP DO PROGRAMOWANIA

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Strona główna góra

Konfiguracja programu RMS do współpracy z wagami DIBAL. Programowanie artykułów 3

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego ZAPYTANIE OFERTOWE

Wartości domyślne, szablony funkcji i klas

W. Guzicki Zadanie 23 z Informatora Maturalnego poziom rozszerzony 1

Pracownia Komputerowa wykład III

Kurier POCZTEX XL by CTI. Instrukcja

Wyrażenia regularne. Wyrażenia regularne 1/41

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Środowisko programisty

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Transkrypt:

Bash - kontynuacja Bash - kontynuacja 1/36

Bash - kontynuacja 2/36 Łańcuchy znaków Łączenie napisów a=napis1 b=napis2 c=${a}${b} echo ${c} napis1napis2 Polecenia grep i tr Przykład: $ tr abc xyz $ grep abc plik.txt

Bash - kontynuacja 3/36 Operatory dopasowywania wzorców Operator ${zm#wz} ${zm##wz} ${zm%wz} ${zm%%wz} Działanie Usuwa najkrótszą część zm pasującą do wz idąc od lewej Usuwa najdłuższą część zm pasującą do wz idąc od lewej Usuwa najkrótszą część zm pasującą do wz idąc od prawej Usuwa najdłuższą część zm pasującą do wz idąc od prawej

Bash - kontynuacja 4/36 Operatory dopasowywania wzorców - przykład f=/home/cam/book/long.file.name echo ${f} # /home/cam/book/long.file.name echo ${f##/*/} # long.file.name echo ${f#/*/} # cam/book/long.file.name echo ${f%.*} # /home/cam/book/long.file echo ${f%%.*} # /home/cam/book/long

Bash - kontynuacja 5/36 Operatory zastąpienia Operator ${zm:-sl} ${zm:=sl} ${zm:?sl} ${zm:+sl} ${zm:p:d} Działanie Zwraca wartość sl, jeżeli zm jest niezdefiniowane Przypisuje zm wartość sl, jeżeli zm jest niezdefiniowane Przerywa działanie skryptu i wypisuje sl, jeżeli zm jest niezdefiniowane Jeżeli zm istnieje, zwracana jest jej wartość, w przeciwnym razie zwracana jest wartość null Zwraca podciąg znaków zmiennej (zaczynający się od p i mający d znaków)

Bash - kontynuacja 6/36 Przykłady wykorzystania operatorów zastąpienia Przykład 1 filename=${1:?"brak pliku"} howmany=${2:-10} sort -nr $filename head -$howmany Przykład 2 filename=${1:?"brak pliku"} howmany=${2} sort -nr $filename head -${howmany:=10}

Bash - kontynuacja 7/36 Pętla for for nazwa [in lista] do instrukcje używające $nazwa... Prosta pętla for for i in 1 2 3 do echo $i

Bash - kontynuacja 8/36 Pętla for pozwala na podstawianie nazw for nazwa in plik[1-5] do echo $nazwa Efekt uruchomienia powyższej instrukcji plik1 plik2 plik3 plik4 plik5

Bash - kontynuacja 9/36 Pętla for pozwala na podstawianie nazw $ ls plik1 plik2 plik3 for nazwa in * do echo $nazwa Efekt uruchomienia powyższej instrukcji plik1 plik2 plik3

Bash - kontynuacja 10/36 Przykład pętli for (kolejny) # Wyszukanie wszystkich plików o rozszerzeniu txt, # dla których ostatnia linia zawiera # napis "Autor: Jan Kowalski" for f in $(find. -name "*.txt" -type f); do if [ "$(tail -1 ${f})" == "Autor: Jan Kowalski" ]; then echo "Plik ${f} posiada już podpis" fi Pętla for w stylu C for ((inicjalizacja; warunek; post_modyfikacja)); do instrukcje

Bash - kontynuacja 11/36 Kilka przykładów pętli for for i in 1 2 3 4 5 6 7 8 9 10; do echo -n "$i " echo for i in $(seq 1 10); do echo -n "$i " echo for ((i = 1; i <= 10; i++)); do echo -n "$i " echo

Bash - kontynuacja 12/36 Instrukcja case case wyrazenie in wzorzec1 ) instrukcje ;; wzorzec2 ) instrukcje ;;... esac

Instrukcja case przykład for filename in "$@"; do pnmfile=${filename%.*}.ppm case $filename in *.jpg ) exit 0 ;; *.tga ) tgatoppm $filename > $pnmfile ;; *.xpm ) xpmtoppm $filename > $pnmfile ;; *.pcx ) pcxtoppm $filename > $pnmfile ;; *.tif ) tifftopnm $filename > $pnmfile ;; *.gif ) giftopnm $filename > $ppmfile ;; * ) echo "procfile: $filename ma nieznany format" exit 1 ;; esac outfile=${pnmfile%.ppm}.new.jpg pnmtojpeg $pnmfile > $outfile rm $ppmfile Bash - kontynuacja 13/36

Bash - kontynuacja 14/36 Pętla while while warunek do wyrazenia...

Bash - kontynuacja 15/36 Pętla while przykład path=$path: while [ $path ]; do ls -ld ${path%%:*} path=${path#*:} zm="" while [ "${zm}"!= koniec ]; do echo -n "Wpisz coś (słowo koniec aby zakończyć): " read zm echo "Wpisałeś ${zm} "

Bash - kontynuacja 16/36 Pętla until until polecenie; do wyrazenia...

Bash - kontynuacja 17/36 Pętla until przykład until cp $1 $2; do echo Próba kopiowanie nia powiodła się. Czekam... sleep 5 To samo za pomocą pętli while while! cp $1 $2; do echo Próba kopiowanie nia powiodła się. Czekam... sleep 5

Bash - kontynuacja 18/36 Instrukcje break i continue Przykład wykorzystania while true; do read a if [ "$a" = "koniec" ]; then break elif [ "$a" = "dalej" ]; then continue fi echo "Wpisałeś $a "

Bash - kontynuacja 19/36 Deklarowanie funkcji function nazwa_funkcji { instrukcje } lub nazwa_funkcji() { instrukcje }

Bash - kontynuacja 20/36 Wywoływanie funkcji i argumenty Przykład pokazujący deklarację i wywołanie funkcji wypisz_argumenty () { echo -n "Jest $# argumentów:" for i in "$@"; do echo -n " $i " echo } wypisz_argumenty wypisz_argumenty "$@" wypisz_argumenty raz dwa trzy cztery pięć

Bash - kontynuacja 21/36 Zasięg deklaracji f # błąd - funkcja nie jest zadeklarowana if [ "$USER" = bashtest ]; then f () { echo "Pierwsza wersja f" } else f () { echo "Druga wersja f" } fi f # funkcja f może być zadeklarowana na dwa sposoby, # zależnie od tego jaki użytkownik uruchomił skrypt

Bash - kontynuacja 22/36 Status wyjścia pytanie_tak_nie () { while true; do if [ $# -ge 1 ]; then echo -n "$1 (tak/nie)? " fi read odp if [ "$odp" = tak ]; then return 0 elif [ "$odp" = nie ]; then return 1 fi } if pytanie_tak_nie "Czy chcesz usłyszeć pytanie"; then until pytanie_tak_nie "Czy chcesz zakończyć ten skrypt"; do : # : jest wbudowaną pustą instrukcją fi

Bash - kontynuacja 23/36 Podshelle Tworzenie podshella ( instrukcje ) $ a=2; ( echo $a; a=3; echo $a ); echo $a 2 3 2 $ ( cd /tmp ); echo $PWD /home/sp1 $

Bash - kontynuacja 24/36 Podshelle ( if [! -d "$1" ]; then echo "$1 nie jest katalogiem exit 1 # wychodzi tylko z podshella fi cd "$1" for i in *.txt; do if [ -f "$i" ]; then echo "==== Do zrobienia w pliku $i ====" grep TODO "$i" fi ) less

Bash - kontynuacja 25/36 Grupowanie instrukcji $ a=2; { echo $a; a=3; echo $a; }; echo $a; 2 3 3

Bash - kontynuacja 26/36 Referencje Polecenie eval argumenty Przykład $ a=wartość $ echo $a wartość $ b=a $ echo $b a $ eval echo \$$b wartość $

Bash - kontynuacja 27/36 Referencje i funkcje dopisz_y () { for z in "$@"; do eval $z=\$\{$z\}y } a=dom b=kąt dopisz_y a b echo "a=$a" # wypisze a=domy echo "b=$b" # wypisze b=kąty

Bash - kontynuacja 28/36 Tablice tworzenie tab[0]=napis1 tab[2]=napis2 tab[1]=napis3 tab=([0]=napis1, [2]=napis2, [1]=napis3) tab=(napis1, napis2, napis3)

Bash - kontynuacja 29/36 Tablice dostęp Dostęp do pojedynczego elementu ${tab[i]} Przykład echo ${tab[1]} napis3 Rozwinięcie tablicy echo ${tab[@]} napis1 napis3 napis2

Bash - kontynuacja 30/36 Zarządzanie procesami Polecenia do zarządzania procesami Polecenie Opis ps wyświetlanie procesów kill/killall kończenie procesów top menadżer zadań fg/bg/jobs/^z operowanie na zadaniach w shellu

Bash - kontynuacja 31/36 Zarządzanie procesami przykłady $ ps ax... 5613? Ss 0:00 xterm 5627 pts/2 S 0:03 bash 5691 pts/0 S+ 0:00 mc 5932 pts/2 R+ 0:00 ps ax $ sleep 999 & [1] 5994 $ while true; do : ; & [2] 5995 $ jobs [1]- Running sleep 999 & [2]+ Running while true; do :; &

Bash - kontynuacja 32/36 Zarządzanie procesami przykłady $ fg 2 while true; do :; Naciskamy klawisze Ctrl-Z: [2]+ Stopped while true; do :; $ bg 2 [2]+ while true; do :; &

Bash - kontynuacja 33/36 Generowanie liczb losowych Do generowania liczb losowych służy funkcja $RANDOM. Generuje ona liczbę całkowitą pseudolosową z przedziału od 0 do 32767. Przykład: $ echo $RANDOM 25776

Bash - kontynuacja 34/36 Typowanie zmiennych Działanie instrukcji declare Opcja Działanie -a zmienna traktowana jako tablica -i zmienna traktowana jako liczba całkowita -r zmienna tylko do odczytu -x zmienna do eksportu

Bash - kontynuacja 35/36 Przykłady działania instrukcji declare $ val1=12 val2=5 $ result1=val*val2 $ echo $result1 val1*val2 $ declare -i val3=12 val4=5 $ declare -i result2 $ result2=val3*val4 $ echo $result2 60

Bash - kontynuacja 36/36 W wykładzie wykorzystano materiały Środowisko programisty, http://mediawiki.ilab.pl/index.php/%c5%9arodowisko programisty C. Newham, B. Rosenblatt, bash. Wprowadzenie, Helion, 2006