Как включить режим отладки сценариев оболочки в Linux
Скрипт — это просто список команд, хранящихся в файле. Вместо запуска последовательности команд, постоянно набирая их одну за другой на терминале, пользователь системы может сохранить все их (команды) в файле и несколько раз вызывать этот файл для повторного выполнения команд.
При изучении написания сценариев или на ранних этапах написания сценариев мы обычно начинаем с написания небольших или коротких сценариев, состоящих из нескольких строк команд. И мы обычно отлаживаем такие сценарии, не делая ничего, кроме просмотра их вывода и проверки того, что они работают так, как мы задумали.
Однако, когда мы начнем писать очень длинные и сложные сценарии с тысячами строк команд, например сценарии, которые изменяют настройки системы, выполняют критически важные резервные копии по сети и многое другое, мы поймем, что просто смотреть на выходные данные сценария недостаточно. достаточно, чтобы найти ошибки в сценарии.
Поэтому в этой серии статей об отладке сценариев оболочки в Linux мы рассмотрим, как включить отладку сценариев оболочки, а также перейдем к объяснению различных режимов отладки сценариев оболочки и способов их использования в последующих сериях.
Как запустить скрипт
Скрипт отличается от других файлов своей первой строкой, которая содержит #!
(She-bang – определяет тип файла) и имя пути (путь к интерпретатору). который сообщает системе, что файл представляет собой набор команд, которые будут интерпретироваться указанной программой (интерпретатором).
Ниже приведены примеры «первых строк» в разных типах скриптов:
#!/bin/sh [For sh scripting]
#!/bin/bash [For bash scripting]
#!/usr/bin/perl [For perl programming]
#!/bin/awk -f [For awk scripting]
Примечание. Первую строку или #!
можно опустить, если скрипт содержит только набор стандартных системных команд без каких-либо внутренних директивы оболочки.
Как выполнить сценарий оболочки в Linux
Обычный синтаксис для вызова сценария оболочки:
script_name argument1 ... argumentN
Другая возможная форма — четкое указание оболочки, которая будет выполнять сценарий, как показано ниже:
shell script_name argument1 ... argumentN
Например:
/bin/bash script_name argument1 ... argumentN [For bash scripting]
/bin/ksh script_name argument1 ... argumentN [For ksh scripting]
/bin/sh script_name argument1 ... argumentN [For sh scripting]
Для сценариев, у которых нет #!
в первой строке и которые содержат только основные системные команды, такие как приведенная ниже:
#script containing standard system commands
cd /home/$USER
mkdir tmp
echo "tmp directory created under /home/$USER"
Просто сделайте его исполняемым и запустите следующим образом:
chmod +x script_name
./script_name
Способы включения режима отладки сценариев оболочки
Ниже приведены основные параметры отладки сценариев оболочки:
-n
(сокращение от noexec или no ecexecution) – предписывает оболочке читать все команды, но не выполнять их. Эта опция активирует режим проверки синтаксиса.-x
(сокращение от xtrace или трассировки выполнения) — сообщает оболочке отображать все команды и их аргументы на терминале во время их выполнения. Эта опция включает режим трассировки оболочки.
1. Изменение первой строки сценария оболочки
Первый механизм заключается в изменении первой строки сценария оболочки, как показано ниже. Это позволит отлаживать весь сценарий.
#!/bin/sh option(s)
В приведенной выше форме параметр может быть одним или комбинацией параметров отладки, указанных выше.
2. Вызов оболочки с опциями отладки
Второй — вызов оболочки с параметрами отладки следующим образом: этот метод также включит отладку всего скрипта.
shell option(s) script_name argument1 ... argumentN
Например:
/bin/bash option(s) script_name argument1 ... argumentN
3. Использование встроенной команды set Shell
Третий метод — использование встроенной команды set для отладки определенного раздела сценария оболочки, например функции. Этот механизм важен, поскольку позволяет нам активировать отладку в любом сегменте сценария оболочки.
Мы можем включить режим отладки с помощью команды set в форме ниже, где опция — это любой из параметров отладки.
set option
Чтобы включить режим отладки, используйте:
set -option
Чтобы отключить режим отладки, используйте:
set +option
Кроме того, если мы включили несколько режимов отладки в разных сегментах сценария оболочки, мы можем отключить их все сразу следующим образом:
set -
На этом все, что касается включения режима отладки сценариев оболочки. Как мы видели, мы можем отлаживать либо весь сценарий оболочки, либо определенный раздел сценария.
В следующих двух эпизодах этой серии мы рассмотрим, как использовать параметры отладки сценариев оболочки для подробного объяснения, проверки синтаксиса и отладки трассировки оболочки. > Режимы с примерами.
Важно отметить, что не забудьте задавать вопросы об этом руководстве или, возможно, оставлять нам отзывы в разделе комментариев ниже. А до тех пор оставайтесь на связи с Tecmint.