Com que finalidade reatribuir uma variável a si mesmo via echo serve?

2

Eu encontrei um código bash durante uma revisão que atribui uma variável a si mesmo usando o eco. A variável é uma matriz. O código basicamente atribui a variável a si mesma com 'echo $a' .

a=(one two three)
a='echo $a'

Qual o propósito disso?

    
por sean woodward 24.11.2015 / 18:36

1 resposta

2

Recorta o primeiro elemento do array:

a=( ' one ' two three )
a=$(echo $a)
echo "<$a>"

Saída:

<one>

Você pode jogar com várias combinações de citações:

#! /bin/bash
for i in {1..4} ; do 
    a=( $' one \n * two ' three four )
    case $i in
        (1) a=$(echo $a)     ;;
        (2) a=$(echo "$a")   ;;
        (3) a="$(echo $a)"   ;;
        (4) a="$(echo "$a")" ;;
    esac
    echo "<$a>"
done

Mas, basicamente, você deve usar

a[0]=...

se você quiser atribuir o primeiro elemento de uma matriz e

echo "${a[0]}"

se você quiser produzir seu primeiro elemento.

    
por 24.11.2015 / 18:40