Поиск по сайту:

Как включить режим отладки сценариев оболочки в 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 

Способы включения режима отладки сценариев оболочки

Ниже приведены основные параметры отладки сценариев оболочки:

  1. -n (сокращение от noexec или no ecexecution) – предписывает оболочке читать все команды, но не выполнять их. Эта опция активирует режим проверки синтаксиса.
  2. -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.