next up previous contents
Next: 6.3 sh Up: 6. Оболочки Previous: 6.1 Команды

6.2 Командные последовательности - скрипты

Как уже было отмечено, скрипт - это файл, содержащий последовательность команд оболочки. Этот файл может быть приготовлен с помощью любых средств, как обычный текстовый файл. Например, его можно приготовить с помощью любого редактора текстов, или командой cat


cat > TestExecFile

echo "This is first exec file."

Ctrl/d 

chmod +x TestExecFile

Замечание: Ctrl/d в предыдущем примере означает, что на клавиатуре терминала должны быть нажаты одновременно две клавиши: Ctrl и d (буква "d"). В Linux ввод такой комбинации воспринимается как "конец файла" при вводе текста или как "конец сеанса" при вводе команд. "Kонец сеанса" вызовет специальную процедуру выхода из системы. После выполнения такой процедуры работать с системой будет возможно лишь после выполнения процедуры входа в систему (команда logon).

Если следом попробовать запустить скрипт ./TestExecFile, то на экране будет напечатана строка: This is first exec file.

Скрипт можно сгенерировать с помощью другого скрипта. Например, нижепривед©нный текст скрипта генерирует скелет (основу) нового скрипта:


#!/bin/bash 

#set -x 

#Call c_script script_name



SCRIPT_NAME=$1

if [ "" = "$1" ]; then

         echo

         echo "Usage: c_script scriptname"

         echo

         exit

fi



echo "#"				>  $SCRIPT_NAME

echo "#!/bin/bash"		>> $SCRIPT_NAME

echo 				>> $SCRIPT_NAME

echo "#---------------------------------------------------------------+" >> $SCRIPT_NAME

echo "#								|" >> $SCRIPT_NAME

echo "# Usage:"	$SCRIPT_NAME			>> $SCRIPT_NAME

echo "#								|" >> $SCRIPT_NAME

echo "# The script is dedicated to:					|" >> $SCRIPT_NAME

echo "#								|" >> $SCRIPT_NAME

echo "# Creation date: " `date`	"			|"		>> $SCRIPT_NAME

echo "# The host where it was developed="`hostname` "		|" >> $SCRIPT_NAME

echo "# History of changes:						|" >> $SCRIPT_NAME

echo "#								|" >> $SCRIPT_NAME

echo "#---------------------------------------------------------------+" >> $SCRIPT_NAME

echo "#								|" >> $SCRIPT_NAME

echo "#  Author: Andrei Chevel. email: Andrei.Chevel@pnpi.spb.ru	|" >>$SCRIPT_NAME

echo "#---------------------------------------------------------------+" >> $SCRIPT_NAME

echo				>> $SCRIPT_NAME

chmod +x $SCRIPT_NAME		# To make the script executable

Легко видеть, что приведенный скрипт во время исполнения формирует основу нового скрипта и автоматически помещает в виде комментариев ряд информационных строк.

Обратим внимание на особенности текста любого скрипта.

Строка комментария помечается знаком "#" (решетка). Исключение составляет первая строка скрипта, если за "#" следует знак "!" (восклицательный знак). Так устанавливается вид оболочки, которая будет интерпретировать ваш скрипт.

Если не указан вид оболочки, то скрипт интерпретируется оболочкой, установленной по умолчанию на вашей машине. Если не установлено умолчание, то используется sh.

В начале скрипта полезно самому установить тип интерпретатора. При этом можно использовать в качестве интерпретатора любую программу. Например, если вы предпочитаете bash, то первую строку скрипта надо написать в виде:


#!/bin/bash

Для того, чтобы скрипт распознавался операционной системой как исполняемый файл следует выполнить команду:


chmod u+x TestExecFile

или просто


chmod +x TestExecFile


next up previous contents
Next: 6.3 sh Up: 6. Оболочки Previous: 6.1 Команды
Andrei Chevel
Andrei.Chevel@pnpi.spb.ru


Banner.Novgorod.Ru