Отладка функций bash

Итак, здесь у меня есть простая функция, которую я хочу отлаживать. Однако я не могу отлаживать желаемую функцию, даже set -o functrace включен параметр set -o functrace . Прежде чем приступать к задаче этого вопроса, мне удалось найти возможное решение, которое не дало желаемых результатов, которое находится здесь .

Как я могу заставить bash отлаживать мои функции?

 #!/bin/bash echo "Hello World" hello() { echo "Hello world" } 

вывод:

 user@mac11:53:29~/desktop bash -x debug.sh + echo 'Hello World' Hello World user@mac11:54:55~/desktop 

2 Solutions collect form web for “Отладка функций bash”

но этот ответ в ссылке, похоже, работает ……..

  Kaizen ~/so_test $ cat zhello.sh set -x ; set -o functrace hello() { name=$1; echo "Hello , how are you $name"; } hello "itin" ; 

выход:

  Kaizen ~/so_test $ ./zhello.sh + ./zhello.sh -- script was run ++ set -o functrace ++ hello itin -- function was invoked ++ name=itin -- variable assigned within the function hello ++ echo 'Hello , how are you itin' Hello , how are you itin -- printed the output from the function ... 

Мне немного любопытно, есть ли что-то конкретное, что вы ищете?

Функция hello() не была вызвана в конце скрипта. Ошибка пользователя.

  • Замените несколько пробелов одним, используя только «tr»
  • Утечка дескрипторов файлов
  • Количество и список вниз + расширенные функции
  • Как я могу управлять существующей удаленной оболочкой?
  • Меньше знака после выполнения в сценарии оболочки
  • Скопируйте файлы, найденные с помощью find?
  • Где я могу изменить свою оболочку?
  • команда не найдена через скрипт оболочки, но работает на терминале
  • Как я мог вспомнить, как использовать перенаправление?
  • Как сделать экспортированные переменные оболочки постоянными?
  • Перенаправить все стандартные для остальной части скрипта
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.