Passando variáveis para script [duplicado]

0

Qual é a diferença entre:

./script.sh "$VARIABLE"

e

./script.sh ${VARIABLE}

Existe algum?

    
por sqiero 21.06.2016 / 20:47

2 respostas

1

$VARIABLE e ${VARIABLE} são efetivamente iguais, se forem palavras independentes. Mas observe o seguinte exemplo, especialmente em um script

VARIABLE=USER
echo $VARIABLE

você obtém saída

USER

mas quando você digita

echo $VARIABLE1

esperando receber

USER1

você não recebe nada, pois não há variável como VARIABLE1 defined

Mas se você usar

echo ${VARIABLE}1

você obtém a saída USER1 esperada.

    
por 21.06.2016 / 20:56
0

de Shawn J. Goff: $ VAR vs $ {VAR} e para citar ou não citar

VAR=$VAR1 is a simplified version of VAR=${VAR1}. There are things the second can do that the first can't, for instance reference an array index (not portable) or remove a substring (POSIX-portable). See the More on variables section of the Bash Guide for Beginners and Parameter Expansion in the POSIX spec.

Using quotes around a variable as in rm -- "$VAR1" or rm -- "${VAR}" is a good idea. This makes the contents of the variable an atomic unit. If the variable value contains blanks (well, characters in the $IFS special variable, blanks by default) or globbing characters and you don't quote it, then each word is considered for filename generation (globbing) whose expansion makes as many arguments to whatever you're doing.

    
por 21.06.2016 / 21:04