Как получить значение экспортируемой переменной в консоли

Если я написал

export COMP_WORDS="this words"

Мне нужно что-то вроде

get-exported COMP_WORDS

, ожидая чего-то вроде

COMP_WORDS="this words"

Я попробовал

set | grep COMP_WORDS

, но он принимает другие строки

6
задан 20 May 2017 в 18:55

9 ответов

Чтобы получить значение VARIABLE, вы можете использовать

echo $VARIABLE

Кавычки не сохранились, хотя

$ COMP_WORDS="you said what?"
$ echo $COMP_WORDS
you said what?

Если вы не цитируете их ...

$ quote='"2b || !2b"'
$ echo $quote
"2b || !2b"

Не имеет значения, вы сами установили переменную или нет

10
ответ дан 22 May 2018 в 22:26

Чтобы получить значение VARIABLE, вы можете использовать

echo $VARIABLE

Кавычки не сохранились, хотя

$ COMP_WORDS="you said what?" $ echo $COMP_WORDS you said what?

Если вы не цитируете их ...

$ quote='"2b || !2b"' $ echo $quote "2b || !2b"

Не имеет значения, вы сами установили переменную или нет

10
ответ дан 18 July 2018 в 13:00

Чтобы получить значение VARIABLE, вы можете использовать

echo $VARIABLE

Кавычки не сохранились, хотя

$ COMP_WORDS="you said what?" $ echo $COMP_WORDS you said what?

Если вы не цитируете их ...

$ quote='"2b || !2b"' $ echo $quote "2b || !2b"

Не имеет значения, вы сами установили переменную или нет

10
ответ дан 24 July 2018 в 20:05

Вы можете использовать printenv:

$ export var=foo
$ printenv var
foo

В качестве альтернативы echo вы также можете использовать printf.

printf "%s\n" $COMP_WORDS
7
ответ дан 22 May 2018 в 22:26
  • 1
    С помощью printf вы должны сделать printf "%s\n" "$COMP_WORDS", чтобы содержимое переменной не интерпретировалось как строка формата. – muru 20 May 2017 в 20:56

В bash, если вы хотите, чтобы результат повторного использования снова задавал переменную, вы можете попробовать declare:

$ declare -p USER
declare -x USER="muru"
$ export foo='abc
> def
> hij"
> '"'"
$ declare -p foo
declare -x foo="abc
def
hij\"
'"
4
ответ дан 22 May 2018 в 22:26

В bash, если вы хотите, чтобы результат повторного использования снова задавал переменную, вы можете попробовать declare:

$ declare -p USER declare -x USER="muru" $ export foo='abc > def > hij" > '"'" $ declare -p foo declare -x foo="abc def hij\" '"
4
ответ дан 18 July 2018 в 13:00

Вы можете использовать printenv:

$ export var=foo $ printenv var foo

В качестве альтернативы echo вы также можете использовать printf.

printf "%s\n" $COMP_WORDS
7
ответ дан 18 July 2018 в 13:00

В bash, если вы хотите, чтобы результат повторного использования снова задавал переменную, вы можете попробовать declare:

$ declare -p USER declare -x USER="muru" $ export foo='abc > def > hij" > '"'" $ declare -p foo declare -x foo="abc def hij\" '"
4
ответ дан 24 July 2018 в 20:05

Вы можете использовать printenv:

$ export var=foo $ printenv var foo

В качестве альтернативы echo вы также можете использовать printf.

printf "%s\n" $COMP_WORDS
7
ответ дан 24 July 2018 в 20:05
  • 1
    С помощью printf вы должны сделать printf "%s\n" "$COMP_WORDS", чтобы содержимое переменной не интерпретировалось как строка формата. – muru 20 May 2017 в 20:56

Другие вопросы по тегам:

Похожие вопросы: