Сценарий оболочки Unix - печать всех переменных, доступных в области видимости - PullRequest
4 голосов
/ 26 августа 2010

Есть ли способ узнать переменные, доступные в области действия сценария оболочки.

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

спасибо.

Ответы [ 4 ]

9 голосов
/ 27 августа 2010

Команда set

со страницы руководства bash

set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
    Without options, the name and value of each shell variable are displayed in a
    format that can be reused  as  input.

Не путайте это с env, который выведет значения переменных среды not переменных оболочки . переменные оболочки можно пометить для автоматического экспорта в среду последующих дочерних процессов с помощью команды export.

scope в качестве термина программирования, действительно применяется только к переменным оболочки - такие команды, как typeset и local могут использоваться в некоторых оболочках (ksh и bash) чтобы разрешить использование переменных оболочки с областью действия внутри функций. переменные среды являются глобальными для экземпляра процессов.

6 голосов
/ 26 августа 2010

Это очень просто;)

env
0 голосов
/ 19 марта 2015

Это может быть очень упрощенно, но ...

grep = <your script>
0 голосов
/ 27 августа 2010

Звучит так, как будто вы хотите переменные окружения, поэтому используйте export -p.Вывод (который состоит из строк вида export variable=value для POSIX) заключен в кавычки таким образом, что он может быть проанализирован оболочкой.Он также сортируется по имени переменной в большинстве оболочек.

Если вы хотите, чтобы все параметры оболочки (для вашего случая использования это было бы уместно, только если скрипты были получены, а не вызваны как отдельные программы), используйте set(опять же, это в POSIX, выходные данные правильно указаны для повторного анализа и отсортированы в большинстве оболочек).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...