我的代碼如下是一個任務的一部分,但是我對付桌面不知道爲什麼它不會分配「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