Найти переменные в области действия Bash? - PullRequest
2 голосов
/ 04 июля 2011

Вы можете получить информацию о переменных окружения в Bash с помощью set и env.Как вы можете получить информацию только о переменных, используемых в функции?

myfunction(){ a=10; b=5; COMMAND; }

Существует ли COMMAND, который возвращает только переменные в функции, не возвращая другие переменные среды?

a=10
b=5

1 Ответ

0 голосов
/ 04 июля 2011

Я не думаю, что есть. Но вы можете подделать его, из пустого bash-скрипта записать результат compgen -A variable в файл (так как среда в интерактивной оболочке отличается от среды в оболочке, где вы выполняете свой скрипт), а затем в bash -function / script делают то же самое и различают их.

Используя этот подход к приведенному ниже сценарию, я получаю:

#!/bin/bash
a=5
b=10
c="test"

47a48
> PIPESTATUS
73a75,77
> a
> b
> c

См. главу 8.7 в руководстве по bash

...