13 Linux Skrypty powłokiid 14707 ppt

background image

Wykład 13

System operacyjny

Linux

Skrypty powłoki

background image

Powłoka (shell) -

przypomnienie

Powłoka

(ang.

shell

) to pośrednik

między

systemem

operacyjnym

a

użytkownikiem.

Jej

zadaniem

jest

interpretacja komend wydawanych przez

użytkow-nika.

Zazwyczaj

komendy

powłoki

dają

możliwość

tworzenia

prostych programów - skryptów. Skrypty

służą

głównie

zadaniom

administracyjnym (operacje na plikach,

katalogach), powłoka nie udostępnia

bowiem zbyt bogatej arytmetyki.

background image

Powłoka (shell) -

przypomnienie

System Linux nie jest związany z

konkretną

powłoką

-

najczęściej

używane to

bash

oraz

csh

. Różnice

między nimi dotyczą przede wszystkim

składni

komend

oraz

sposobu

posługiwania się zmiennymi.

My wykorzystamy powłokę csh, a zatem

na początku każdego skryptu umieścimy

jej wywołanie:

#!/bin/csh

background image

Zmienne

Skrypt może korzystać ze zmiennych,

które trakto-wane są jak ciągi znaków -

nie mają typu np. liczbo-wego. Po

nadaniu wartości dostęp do danej

zmiennej

jest

możliwy

przez

poprzedzenie jej nazwy znakiem

$

#!/bin/csh

setenv x 20

echo $x

background image

Zmienne środowiskowe

Powłoka

tworzy

specjalne

zmienne

„środowiskowe” opisujące stan systemu

- bieżący katalog, nazwę użyt-kownika

itp.

Listę

tych

zmiennych

podaje

komenda

env

; oczywiście nie trzeba

nadawać im wartości początkowej.

#!/bin/csh

echo $PWD ; echo $HOME

cd $HOME

background image

Zmienne środowiskowe

Niektóre przydatne zmienne:

HOME

- katalog domowy

USER

- login użytkownika

HOST

- nazwa naszego komputera

PWD

- bieżący katalog

PATH

- katalogi, w których system szuka

komend

SHELL

- nazwa bieżącej powłoki

background image

Zmienne środowiskowe

„Skrypt powitalny”:

#!/bin/csh

echo „Witaj $USER !”

echo „Komputer $HOST życzy miłej pracy”

echo „Korzystasz z powłoki $SHELL”

background image

Interpretacja łańcucha

znaków

Czym różni się zapis

echo Witaj $USER

od

echo „Witaj $USER”

lub

echo ‘Witaj

$USER’

? W pierwszym i drugim

przypadku zamiast $USER zobaczymy

swój login, w trzecim - apostrofy „zabez-

pieczą”

nas

przed

podstawieniem

wartości zmiennej. Pierwszy i drugi

przypadek też się różnią - w pierw-szym

mamy dwa elementy znakowe, w drugim

zaś - jeden dwuwyrazowy łańcuch.

background image

Argumenty

Skrypt,

jak

prawdziwa

komenda

systemowa, może posługiwać się danymi

przekazanymi

przez

użytkow-nika.

Argumenty z linii poleceń dostępne są

pod nazwami

$1

,

$2

,

$3

... zaś

$*

podaje

całą zawartość linii poleceń. Zmienna

$<

powoduje wczytanie linii tekstu z

klawiatury. Zmienna

$0

podaje nazwę

pliku zawierającego skrypt.

background image

Argumenty

#!/bin/csh

echo „Skrypt $0 wita”

echo „Pierwszy argument to $1”

echo „Wpisz teraz coś”

setenv linijka $<

echo „A teraz ja powtarzam: $linijka”

Taki skrypt powinniśmy wywołać z

argumentem, np.

./skrypt argument1

background image

Instrukcja sterująca „if”

#!/bin/csh

echo „Podaj nazwę pliku”

setenv plik $<

if

( -e $plik )

then

echo „Ten plik istnieje”

else

echo „Tu nie ma takiego pliku!”

endif

background image

Wyrażenia logiczne

( -e $plik )

!( -e $plik )

„NEGACJA”

(( -e $plik1 ) && (-e $plik2))

„I”

(( -e $plik1 ) || (-e $plik2))

„LUB”

( $tekst1 == $tekst2 )

„RÓWNOŚĆ”

( $tekst1 != $tekst2 )

„NIERÓWNOŚĆ”

-e

:plik istnieje

-r

:mam prawo odczytu

-d

:plik to katalog

-w

-x

-z

:plik jest pusty

-l

:plik to skrót

background image

Wyrażenia logiczne

#!/bin/csh
echo „Podaj nazwę pliku”
setenv plik $<

if

(( -w $plik ) && (-z $plik))

then

echo „Ten plik mogę skasować, jest pusty”
rm $plik

else

echo „Nie skasuję tego pliku”

endif

background image

Pętla „foreach”

#!/bin/csh

foreach

x

(

1 2 3 4 5

)

echo Tworzę pusty plik o nazwie a${x}b
touch a${x}b

end

Jeśli nazwa zmiennej może „wtopić się”

w otaczający tekst, wydzielamy ją

nawiasami klamrowymi!

a${x}b

a$xb

background image

Pętla „foreach”

#!/bin/csh
unalias ls

foreach

x

(`ls `)

if (-d $x ) then
echo Plik $x to katalog
endif

end

Użyto tutaj odwróconych apostrofów:
`ls` - taka kon-strukcja wpisuje w dane
miejsce wynik działania komendy (tutaj
ls) jako zmienną tekstową - linijkę
tekstu.

background image

„switch” - instrukcja

wyboru

#!/bin/csh

switch (

$1

)

case

"a*"

:

echo Argument zaczyna się od a

breaksw

case

"b*"

:

echo Argument zaczyna się od b

breaksw

default:

echo Dziwny argument

endsw

background image

Pętla „while” („dopóki”)

#!/bin/csh
echo Wpisz coś
echo Aby zakonczyć wpisz KONIEC
setenv napis O

while (

$< != „KONIEC”

)

echo Jesteś w pętli WHILE
echo $napis
setenv napis ${napis}O

end


Document Outline


Wyszukiwarka

Podobne podstrony:
09 Linux Skrypty powłoki część II
14 skrypty powłoki IIid 15551 ppt
2006 10 Skrypty powłoki w systemie Linux [Poczatkujacy]
Skrypty powloki systemu Linux Receptury
Skrypty powloki systemu Linux Receptury sposyl
Skrypty powloki systemu Linux Receptury 2
informatyka skrypty powloki systemu linux receptury sarath lakshman ebook
Skrypty powloki systemu Linux Receptury
Skrypty powloki systemu Linux Receptury sposyl
Skrypty powloki systemu Linux Receptury sposyl
Skrypty powloki systemu Linux Receptury sposyl
13 ZMIANY WSTECZNE (2)id 14517 ppt
06 pamięć proceduralna schematy, skrypty, ramyid 6150 ppt
13 ZAPOBIEGANIE ZABURZENIOM PSYCHICZNYMid 14868 ppt
kurs linuks skrypty powłoki XI7JMBJT7NLBOY3XHJGJNBTZSPVIAZCOZPOZTMQ
20 19 05 2014 Ćwiczenie 13 GARAŻ W KOSZTOWEJ wprowadzenieid 21323 ppt
13 3 obieg informacji w WSBid 14597 ppt

więcej podobnych podstron