Подтвердить что ты не робот

Узнайте, где последняя переменная среды была установлена ​​в bash

Хорошо, я знаю, что есть отладчик bash. Но я ищу, если бы у меня была переменная среды в одном из моих сценариев запуска, и я не знаю, как она была установлена ​​или где она может быть, есть ли способ найти ее, кроме исчерпывающего поиска скриптов?

Я имею в виду, есть ли механизм/инструмент, который обеспечивает такую ​​вещь? Выполняет ли bash отслеживание местоположений переменных настроек?

Даже если это может показаться не очень важным, но это перешло мне на ум, когда я помогал другу установить OpenCL, и пакет, предположительно, автоматически установил переменную $ATISTREAMSDKROOT. В любом случае пакет должен был добавить файл в /etc/profile.d, чтобы разрешить установку переменной, но это не так. И, к счастью, переменная получилась пустой.

Но мне было интересно, не получилось ли это, и пакет добавил его в какой-то случайный файл, я бы, вероятно, не мог сказать, где он находится, кроме поиска.

Конечно, я знаю, что можно написать команду sed или два и выполнить поиск по сценариям, но я бы подумал, что исчерпывающий поиск: D

4b9b3361

Ответ 1

Один из вариантов - запустить экземпляр bash с помощью:

bash -x

... и найдите, где переменная установлена ​​на этом выходе. Чтобы перенаправить этот вывод в файл, вы можете сделать:

bash -x -ls -c "exit" 2> shell-startup-output

Вы должны увидеть на выходе, где находятся каждый файл.