我在审查期间遇到了一些 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]}"
如果你想输出它的第一个元素。