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