📜  如何将 bash 中循环中的值分配给单个变量 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:09:05.710000             🧑  作者: Mango

如何将 bash 中循环中的值分配给单个变量

在 Bash 中,循环通常涉及迭代一个列表或一个数组。但是,如果您只想从该列表或数组中获取一个特定值并将其赋给单个变量,则可以使用以下技巧。

使用 for 循环

可以使用 for 循环迭代列表或数组中的值,并将值赋给单个变量。以下是一个示例:

fruits=("apple" "banana" "cherry" "date")

for fruit in "${fruits[@]}"
do
  if [ "$fruit" == "banana" ]
  then
    myvar="$fruit"
    break
  fi
done

echo "The selected fruit is: $myvar"

在上面的示例中,我们定义了一个列表 fruits,然后使用 for 循环迭代列表中的每个元素。如果当前元素是 "banana",则将其分配给 myvar 变量,并通过 break 命令退出循环。注意,我们使用了双引号引用数组变量,以便保留元素中的空格和其他特殊字符。

使用 while 循环

您也可以使用 while 循环将值分配给单个变量。以下是一个示例:

fruits=("apple" "banana" "cherry" "date")
i=0

while [ $i -lt ${#fruits[@]} ]
do
  if [ "${fruits[i]}" == "banana" ]
  then
    myvar="${fruits[$i]}"
    break
  fi
  let i++
done

echo "The selected fruit is: $myvar"

在上面的示例中,我们使用 while 循环迭代数组中的元素,并使用 $i 变量作为数组索引。在每个迭代步骤中,我们检查当前元素是否是 "banana",如果是,则将其分配给 myvar 变量,并退出循环。

结论

无论是使用 for 循环还是 while 循环,都可以从 Bash 列表或数组中选择一个值,并将其分配给单个变量。只需选择适合您情况的循环类型,并在遍历过程中使用条件语句来检查您想选择的值。