голосование
PHP
BASH
Javascript
HTML
Firebird
Майнинг
Программы
Хостинг
Железо
PostgreSQL
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как реализовать вывод команд перед исполнением debug set -v BASH

Перед тем как запустить скрипт в работу программист тщательно тестирует скрипт. Тут нужен дебаггер или отладчик. Рассмотрим debugger для sh-скриптов. Есть отладочная команда set, которая позволяет выводить на экран название команд перед выполнением. Перед тем как команда сработает она отобразится в консоле. Кто-то скажет, что можно воспользоваться echo название_команды. Такой способ увеличивает объём кода и затрудняет понимание. Благодаря set вы сможете показать каждую команду в командной строке перед выполнением и быстро убрать вывод команд. Если в вашем скрипте 100 команд, то выводить перед каждой командой echo довольно утомительное занятие.


#!/bin/bash
# вывод команд перед исполнением
# можно использовать их в заголовке сценария (в строке sha-bang) -- #!
#!/bin/bash -x

# можно указывать дополнительные ключи в командной строке, при запуске сценария
#bash -v script-name
#bash -o verbose script-name

set -v
# set -o verbose - аналог set -v

# запрет вывода команд перед исполнением
# set +v
# set -o verbose - аналог set +v


echo 1

sleep 2

echo 2

sleep 2

echo 3

exit 0

В скрипте применяется задержка в 2 секунды между командами. Это сделано для того чтобы вы увидели работу команды set.

просмотры: 1060, уровень: лёгкий уровень, рейтинг: 5, дата: 2017-05-24 12:25:01
проголосовать:

Комментарии:






поиск
реклама
сайты друзей
банеры
сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://ping-admin.ru/index_5659.html мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://www.2domains.ru домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.