我的代码如下是一个任务的一部分,但是我对付桌面不知道为什么它不会分配“MIN”值。我尝试将MIN和MAX分配给$ {LIST [0]},只是为了使第一个索引就位,但它返回整个数组,这对我来说没有意义。我在CentOS虚拟机上执行此操作(我看不出有什么不同)。我知道第一个和第二个“if”语句的开头需要更好的逻辑,但我更关心MIN和MAX输出。Unix脚本 - 查找最小值和最大值(Bash Shell)
#!/bin/bash
LIST=()
read -p "Enter a set of numbers. " LIST
MIN=
MAX=
if [ ${#LIST[*]} == 0 ]; then echo "More numbers are needed."; fi
if [ ${#LIST[@]} -gt 0 ]; then
for i in ${LIST[@]}; do
if [[ $i -gt $MAX ]]; then
MAX=$i
fi
if [[ $i -lt $MIN ]]; then
MIN=$i
fi
done
echo Max is: $MAX.
echo Min is: $MIN.
fi
您需要检查什么类型的LIST是什么?您将其设置为空数组,然后使用读取来分配标量值。您需要包含-a开关以读取以将LIST维护为数组 – grail