通过 echo 将变量重新分配给自身有什么目的?

通过 echo 将变量重新分配给自身有什么目的?

我在审查期间遇到了一些 bash 代码,该代码使用 echo 将变量重新分配给自身。该变量是一个数组。该代码基本上将变量分配给自身`echo $a`

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

这样做的目的是什么?

答案1

它修剪数组的第一个元素:

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

输出:

<one>

您可以使用各种引用组合:

#! /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

但基本上,你应该使用

a[0]=...

如果你想分配数组的第一个元素,并且

echo "${a[0]}"

如果你想输出它的第一个元素。

相关内容