Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Приклад виконання лабораторної роботи N6
Розробка послідовностей команд була докладно розглянута в прикладі до лабораторної роботи N4. Тут ми скористаємося першою з послідовностей, створених у тій роботі, і простежимо її оформлення як командного скрипта.
Відмінності нашого скрипта від послідовності команд, створеної в лабораторній роботі N4, полягають у тому, що:
- імена все файлів, використовуваних і створюваних у скрипте, записуються як: $HOME/ ім'я_файлу - для того, щоб скрипт міг запускатися з будь-яких каталогів, але використовував би при цьому файли, що перебувають у нашому домашньому каталозі;
- у кінець скрипта вставлена команда echo - для того, щоб виконання скрипта якось було видне на екрані.
Протокол Хід роботи з п.1 виглядає так:
Створення файла-скрипта.
bash2-2.05$ ed myscript
myscript: No such file or directory
a
pr -n' ' -T $HOME/Hum-Dum.txt |
sed -n 's/ *//p' |
cut -f1,3 -d' ' |
sed -n '/[0-9]/p' >$HOME/temp01
cut -f1 -d' ' $HOME/temp01 |
sed -n 's/$/a\\/p' >$HOME/temp02
cut -f2 -d' ' $HOME/temp01 >$HOME/temp03
paste -d'\n' $HOME/temp02 $HOME/temp03 >$HOME/temp01
sed -f $HOME/temp01 $HOME/Hum-Dum.txt >$HOME/result
rm -f $HOME/temp*
echo "Скрипт виконаний!"
.
w
355
q
Виклик командного інтерпретатора для виконання скрипта.
bash2-2.05$ sh myscript
Скрипт виконаний!
Роздруківка результату.
bash2-2.05$ cat result
Humpty-Dumpty
Set on the wall.
on
Humpty-Dumpty
Had a greate fall.
a
And all the king's horses,
all
And all the king's man.
all
Can not Humpty,
not
Can not Dumpty,
not
Humpty-Dumpty,
Dumpty-Humpty,
Set on this wall
on
Again.
bash2-2.05$
| | Далі, щоб не захаращувати наші приклади ми не будемо приводити в протоколах роздруківки файлу result.
Протокол Хід роботи з п.2 виглядає так:
Додання скрипту права на виконання.
bash2-2.05$ chmod u+x myscript
Перевірка прав доступу до файлу-скрипту.
Видне, що є право "x" для власника.
bash2-2.05$ ls -l myscript
-rwxr--r-- 1 ap10999 students 355 Сен 11 13:38 myscript
Спроба виконати скрипт із батьківського каталогу.
bash2-2.05$ cd..
bash2-2.05$ myscript
bash2: myscript: command not found
Удале виконання: при виклику зазначений шлях до файлу.
bash2-2.05$./ap10999/myscript
Скрипт виконаний!
bash2-2.05$
| | Протокол Хід роботи з п.3 виглядає так:
Створення підкаталогу./bin.
bash2-2.05$ mkdir bin
Перенос скрипта в підкаталог.
bash2-2.05$ mv myscript./bin/myscript
Установлюється значення змінної PATH.
bash2-2.05$ PATH=$PATH:$HOME/bin; export PATH
Визначення поточного каталогу (це наш домашній каталог).
bash2-2.05$ pwd
/home/ap10999
Виклик скрипта.
bash2-2.05$ myscript
Скрипт виконаний!
Перехід у підкаталог./bin.
bash2-2.05$ cd bin
Виклик скрипта.
bash2-2.05$ myscript
Скрипт виконаний!
Перехід у каталог, батьківський для нашого домашнього.
bash2-2.05$ cd..
bash2-2.05$ cd..
bash2-2.05$ pwd
/home
Виклик скрипта.
bash2-2.05$ myscript
Скрипт виконаний!
Перевірка змінних оточення
(те, що ми додали в PATH, виділене).
bash2-2.05$ env
PWD=/home/ap10999
HOSTNAME=pegas.mipk.kharkiv.edu
LESSOPEN=|/usr/bin/lesspipe.sh %s
USER=ap10999
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;0
1:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.b
tm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:
*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*
.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;3
5:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
MACHTYPE=i386-redhat-linux-gnu
MAIL=/var/spool/mail/ap10999
INPUTRC=/etc/inputrc
LANG=ru_RU.koi8r
LOGNAME=ap10999
SHLVL=1
SHELL=/bin/bash2
HOSTTYPE=i386
OSTYPE=linux-gnu
HISTSIZE=1000
HOME=/home/ap10999
TERM=xterm
USER=ap10999
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;0
1:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.b
tm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:
*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*
.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;3
5:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:
MACHTYPE=i386-redhat-linux-gnu
MAIL=/var/spool/mail/ap10999
INPUTRC=/etc/inputrc
LANG=ru_RU.koi8r
LOGNAME=ap10999
SHLVL=1
SHELL=/bin/bash2
HOSTTYPE=i386
OSTYPE=linux-gnu
HISTSIZE=1000
HOME=/home/ap10999
TERM=xterm
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/ap10999/bin
SSH_TTY=/dev/pts/0
_=/usr/bin/env
OLDPWD=/home
bash2-2.05$
| | При виконанні п.4 ми в створюваний профіль користувача включили також команду echo - щоб виконання профілю було видне на екрані.
Протокол Хід роботи з п.4 виглядає так:
Перехід у домашній каталог.
bash2-2.05$ cd
Створення файлу-профілю.
bash2-2.05$ ed.profile
.profile: No such file or directory
a
PATH=$PATH:$HOME/bin; export PATH
echo "Каталог /home/ap10999/bin доданий в PATH!"
.
w
84
q
Виходимо із системи.
bash2-2.05$ <Ctrl+D>
При новому вході в систему.profile автоматично виконується
login as: ap10999
ap10999@pegas.mipk.kharkiv.edu's password:
Last login: Wed Sep 11 13:46:43 2002 from tiger.mipk-kspu.kharkov.ua
Каталог /home/ap10999/bin доданий в PATH!
Виклик скрипта.
bash2-2.05$ myscript
Скрипт виконаний!
bash2-2.05$
| |
|