Видите расширение переменных Bash для отладки?

12

Есть ли какие-либо инструменты / приемы для расширения переменных, чтобы облегчить чтение bash-кода?

Например, это будет конвертировать следующее:

DIR=/var/tmp
FILE=${DIR}/file
SCRIPT_ROOT=/opt/root
TOOL=${SCRIPT_ROOT}/tool.sh
${TOOL} ${FILE}

чтобы:

DIR=/var/tmp
FILE=/var/tmp/file
SCRIPT_ROOT=/opt/root
TOOL=/opt/root/tool.sh
/opt/root/tool.sh /var/tmp/file
  • Я конвертирую код BASH в Python и читаю синтаксис BASH чертовски утомительно.
АК-47
источник

Ответы:

16

Запустите скрипт под bash -x:

$ bash -x script
+ DIR=/var/tmp
+ FILE=/var/tmp/file
+ SCRIPT_ROOT=/opt/root
+ TOOL=/opt/root/tool.sh
+ /opt/root/tool.sh /var/tmp/file

Хотя -xобычно используется для отладки, похоже, он соответствует вашим потребностям.

Документация

От man bash:

-x Команды печати и их аргументы по мере их выполнения.

John1024
источник