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