📅  最后修改于: 2023-12-03 15:09:05.710000             🧑  作者: Mango
在 Bash 中,循环通常涉及迭代一个列表或一个数组。但是,如果您只想从该列表或数组中获取一个特定值并将其赋给单个变量,则可以使用以下技巧。
可以使用 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 循环将值分配给单个变量。以下是一个示例:
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 列表或数组中选择一个值,并将其分配给单个变量。只需选择适合您情况的循环类型,并在遍历过程中使用条件语句来检查您想选择的值。