Atribuição variável em um script ksh

1

Estou vendo um script ksh e vejo uma função em que a variável foi definida como abaixo. Alguém pode explicar o que exatamente a atribuição abaixo de meios variáveis no script ksh?

temprule="\$${APPLC_NM}"
    
por Arpan 06.05.2016 / 08:09

2 respostas

0

Como @ Julie Pelletier indicou, esta é uma sintaxe engraçada para fazer uma variável indireta, ou um nameref. O ksh tem alguma sintaxe especializada para fazer isso funcionar, no entanto. Este é um recurso do ksh e pode não funcionar em outros shells.

A maneira mais idiomática de escrever o mesmo em ksh ficaria assim:

# Set up the nameref:
nameref temprule=APPLC_NM
# Assign value to AAPLC_NM
APPLC_NM=abc
# The above two statements may be executed in any order.

# Now, temprule will contain the value of APPLC_NM:
echo $temprule
abc

Agora, nenhum escape engraçado de double $ é necessário, e o resultado é indiscutivelmente mais legível.

    
por 06.05.2016 / 09:36
1

temprule será atribuído a '$' seguido pelo valor da variável APPLC_NM . Então, se APPLC_NM estiver definido como "pizza", temprule se tornará "$ pizza".

Observe que temprule="\$$APPLC_NM" faria exatamente a mesma coisa. Os colchetes são necessários apenas quando o nome da variável é seguido por um caractere que seria válido em um nome de variável.

    
por 06.05.2016 / 08:52

Tags