#!/bin/bash
declare -a tableau
for i in `seq 0 9`
do
    echo "enter a nbr : "
    read ${tableau[$i]}
done
let "max = ${tableau[0]}"
for j in `seq 1 9`
    if [ ${tableau[$i]} -gt $max ]
    then
        let "max = ${tableau[$i]}"
    fi
done
echo "Max is : $max"




用户将在表中输入10,我应该找到最大值和最小值。

最佳答案

如前所述,read语句不应包含$或{}。
应该没有空间分配变量:max = $ {tableau [0]}
在第二个循环中,您正在迭代j,但将i用作数组索引。


那给

#!/bin/bash

declare -a tableau

for i in $(seq 0 9); do
    echo "enter a nbr : "
    read tableau[$i]
done
max=${tableau[0]}
for j in $(seq 1 9); do
    if [ ${tableau[$j]} -gt $max ]; then
        max=${tableau[$j]}
    fi
done
echo "Max is : $max"

关于linux - 我的Linux Shell脚本有什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58923136/

10-14 06:05