Bash, чтение переменной с переменной внутри - PullRequest
1 голос
/ 11 июня 2019

У меня есть скрипт.

style_header[true]="background-color: rgb(230,250,230);"
style_header[false]="background-color: rgb(250,230,230);"

if COMMAND; then
    export=true
else
    export=false
fi

echo "${style_header[$export]}"

КОМАНДА завершена нормально, поэтому export = true, но он возвращает переменную style_header [false] "background-color: rgb (250,230,230);".

background-color: rgb(250,230,230);

Мне нужно это вернуть.

background-color: rgb(230,250,230);

Он работает с номером 0 или 1 в качестве индекса, но мне нужна переменная 'true' или 'false' внутри.

Isможно это сделать?Я имею в виду установить индекс массива как переменную.

1 Ответ

3 голосов
/ 12 июня 2019

Используйте declare -A style_array, чтобы объявить его как ассоциативный массив. По умолчанию предполагается, что это индексированный массив.

#!/bin/bash

declare -A style_header
style_header[true]="background-color: rgb(230,250,230);"
style_header[false]="background-color: rgb(250,230,230);"

if COMMAND; then
export=true
else
export=false
fi

echo "${style_header[$export]}"

DEMO

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