Com indireção
$ bin_variable_name=RSYNC_BIN
$ RSYNC_BIN="/home/<username>/Software/rsync"
$ echo "${!bin_variable_name}"
/home/<username>/Software/rsync
Estou trabalhando em uma função que verifica se certos pacotes estão instalados e prefere as próprias compilações, que são armazenados em um arquivo de configuração.
Então a função é uma entrada como
rsync
Em seguida, ele cria uma nova variável chamada
$bin_variable_name
que tem o valor
RSYNC_BIN
No arquivo de configuração mencionado acima, pode haver uma linha como essa.
RSYNC_BIN="/home/<username>/Software/rsync"
Portanto, se este arquivo é originado no início da função, a variável $ RSYNC_BIN tem um valor diferente de ''.
Agora preciso verificar isso em uma declaração if. Infelizmente, não posso referenciar $ RSYNC_BIN diretamente, pois a função deve funcionar com qualquer entrada fornecida. Então eu de alguma forma preciso "avaliar"
$bin_variable_name
dentro da declaração if, para que o bash não seja executado
if [[ $bin_variable_name == '' ]]; then ...
mas
if [[ $<whatever comes from $bin_variable_name>_BIN = '' ]]; then ...
Isso é possível?
Obrigado por cumprimentar.
Com indireção
$ bin_variable_name=RSYNC_BIN
$ RSYNC_BIN="/home/<username>/Software/rsync"
$ echo "${!bin_variable_name}"
/home/<username>/Software/rsync