14 skrypty powłoki IIid 15551 ppt

background image

Wykład 14

Skrypty powłoki (2)

background image

Diagnostyka

Zarówno w powłoce csh, jak i bash

można

dla

celów

diagnostycznych

uruchomić

wydruk

wykonywanych

komend. Można to zrobić w nagłówku

skryptu:

#!/bin/csh –x

#!/bin/bash –x

Dla powłoki csh działają w obrębie

skryptu komendy

set echo

oraz

unset

echo

background image

Strumień wyjściowy

Strumień

wyjściowy

może

być

skierowany na ekran albo do pliku przez

przekierowanie, np.

ls > plik

. Jeżeli

jednak chcemy go „rozdwoić” (na ekran

i do pliku, do kilku plików) używamy

komendy

tee

która zapisuje strumień

wejściowy do podanych plików oraz

kieruje go na wyjście standardowe.

who | tee –a plik1 plik2

background image

Praca skryptu w tle

Skrypt można uruchomić w tle:

./skrypt &

Można jednak też „zawiesić” działanie

już działają-cego skryptu klawiszami

Ctrl

+

Z

, a potem przywra-cać go do pracy

„w tle” komendą

bg %1

albo przy-wrócić

„na pierwszy plan” komendą

fg %1

background image

Praca skryptu w tle

Skrypt uruchomiony w tle zostanie

przerwany, jeżeli próbuje czytać dane z

terminala (klawiatury). Jeżeli musi on

czytać jakieś dane, należy je wcześniej

przy-gotować, umieścić w pliku i

przekierować zawartość tego pliku do

standardowego wejścia skryptu!

./skrypt < dane_wejściowe > wyniki &

background image

Arytmetyka w powłoce

CSH

Polecenia arytmetyczne zaczynają się od

znaku

@

#!/bin/csh

echo podaj liczbe

set liczba = $<

@ wynik = $liczba * 2

echo $wynik

background image

Arytmetyka w powłoce

CSH

Dozwolone operatory arytmetyczne:

@ wynik = $liczba + 2

@ wynik = $liczba - 2

@ wynik = $liczba * 2

@ wynik = $liczba / 2

@ wynik++

@ wynik--

@ wynik = ($liczba > 2)

background image

Skrypt „odliczający”

#!/bin/csh

echo Podaj liczbe

set liczba=$<

while (liczba > 0)

@ liczba–-

sleep 1

echo jeszcze $liczba sekund

end

background image

Zmienna jako tablica

wartości

#!/bin/csh

set pliki=`ls`

echo Oto nazwy paru plikow z katalogu ./

echo Oto pierwszy plik: $pliki[1]

echo I jeszcze trzy nastepne: $pliki[2-4]

echo Policzmy ile linii ma każdy plik

wc $pliki

background image

Skrypt dla drukarzy

Skrypt

podaje,

na

ilu

stronach

standardowego wydruku mieści się plik

o nazwie podanej jako argu-ment przy

wywołaniu:

#!/bin/csh

set llin=`wc < $1`

@ lstr = ($llin[1] / 60) + 1

echo Plik $1 zajmie $lstr stron

background image

Skrypt dla programistów

Skrypt podaje, ile plików w bieżącym

katalogu to skrypty:

#!/bin/csh
if ($1 == ””) then
set kat = ”./”
else
set kat = $1
endif
set licz=`file ${kat}/* | grep script | wc`
echo W tym katalogu jest $licz[1] skryptow

background image

Skrypt tworzący pliki

Skrypt tworzy podaną liczbę plików:

#!/bin/csh
if ($1 == "") then
echo Nie podales poczatku nazwy plikow
else
if ($2 > 0) then
set licz=$2
while ($licz > 0)
touch ${1}${licz}
@ licz--
end
else
echo Podales zla liczbe plikow
endif
endif

background image

Dość obliczeń, teraz

szpiegostwo

Skrypt podaje, czy dany użytkownik

właśnie pracuje

#!/bin/csh

echo Podaj nazwe uzytkownika

set imie=$<

if (`w $imie |grep $imie` =="" ) then

echo nie ma

else

echo jest

endif

background image

Nie dajmy się oszukać

Jeżeli użytkownik ma nam podać jakieś

dane, ale tego nie zrobi, skrypt może

przerwać działanie zgłaszając błąd. Jak

się przed tym uchronić?

#!/bin/csh

if ( $?sygnał ) then

echo Ustawiono sygnał

else

echo Jeszcze nie było sygnału!

endif

background image

Duże skrypty składamy z

„klocków”

Służy do tego komenda

source

(w csh)

lub

.

(w bash), która dołącza do skryptu

dany plik

#!/bin/csh

echo zaraz wykonam polecenia skryptu plik1

source plik1

#!/bin/sh

echo zaraz wykonam polecenia skryptu plik1

. plik1

background image

Powłoka startowa

Gdy użytkownik loguje się do systemu,

wykonywane

skrypty

startowe

odpowiedniej

powłoki.

Użytkow-nik

może

wybrać

powłokę

startową

poleceniem

chsh –s /bin/csh

chsh –s /bin/sh

chsh –s /bin/bash

background image

Skrypty startowe

Skrypty startowe zależą od powłoki,

mają m.in. ustawić środowisko (katalogi

komend). Dla powłoki csh czytane są

skrypty

/etc/csh.cshrc /etc/csh.login ~/.cshrc

~/.login

~/.tcshrc

(dla wariantu tcsh)

zaś dla bash:

/etc/profile

~/.profile

~/.bashrc

background image

Skrypty startowe

Przykładowy plik startowy dla powłoki

csh:

# /etc/csh.cshrc: system-wide .cshrc file
# for csh(1)/tcsh(1).

if (( $?prompt ) && ( $?tcsh )) then
if ( "$?TERM" == "linux" ) then
set prompt = "%m:%B%~%b%# "
else
set prompt = "%U%m%u:%B%~%b%# "
endif
endif

background image

Skrypty startowe

Przykładowy plik startowy dla powłoki

bash:

# ~/.profile: executed by Bourne-compatible
# login shells.

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbi
n:/usr/bin:/sbin:/bin:/usr/bin/X11

export PATH

background image

Skrypty startowe systemu

Skrypty

startowe

znajdują

się

w

katalogu

/etc

,

a

w

podkatalogu

/etc/init.d

znajdziemy skrypty startowe

systemu i usług systemowych

takich jak

usługi siecio-we, konsole, montowanie

dysków... Nie są one jednak wywoływane

bezpośrednio z tego katalogu, lecz z sze-

regu katalogów

/etc/rc0.d

,

/etc/rc1.d

..

aż do

/etc/rc6.d

które opisują, co należy

zrobić w danej fazie pracy systemu.

background image

Skrypty startowe systemu

Katalogi

/etc/rc0.d

... zawierają skróty

do

niektórych

skryptów

katalogu

/etc/init.d

; cyfry od 0 do 6 to oznaczenia

poziomów pracy systemu (run-levels),

które root może zmieniać komendą

init

,

np.

init 6

Poziom

0

to start systemu,

1

(tzw.

single-user) - dia-gnostyczny,

2-5

to

normalna

praca,

6

- zatrzymanie

systemu.

background image

Jeszcze jeden skrypt

#!/bin/csh

source życzenia_świąteczne

init 6


Document Outline


Wyszukiwarka

Podobne podstrony:
14 Obrazy swiata IIid 15255 ppt
13 Linux Skrypty powłokiid 14707 ppt
kurs linuks skrypty powłoki XI7JMBJT7NLBOY3XHJGJNBTZSPVIAZCOZPOZTMQ
14 15 Efektywno terapiiid 15623 ppt
11 Zagadnienia granic poznania IIid 12272 ppt
14 SYSTEMY UPRAWY ROSLINid 15278 ppt
Wykład 14 Drgania wymuszone oscylatora harmonicznego ppt
2 Ch organiczna podzial reakcje IIid 20221 ppt
07 Zagadnienia zrodla poznania IIid 6750 ppt
14 WYKŁAD XV mutacjeid 15285 ppt
14 Choroby wątroby w ciązyid 15241 ppt
01 Gipsy I i IIid 2613 ppt
14 15 Obróbka cieplnaid 15624 ppt
12 24 miesiac, gr IIid 13717 ppt
14 Zaburzenia pamięci węchowejid 15288 ppt
wykład IIid 1476 ppt
2008b IIid 26618 ppt

więcej podobnych podstron