Bash位置参数命令行排序问题

时间:2016-09-21 23:58:16

标签: linux bash

完成此作业。

  

编写一个Bash脚本insert-sort.sh,它按升序对命令行参数列表进行排序。例如,您的命令将类似于:   $ insert-sort.sh 7 2 3 9 -1并输入enter。   您的计划将返回:-1 2 3 7 9

这是我到目前为止所拥有的

array=();
for param in "$@"; do
    if [ -z "$array" ]; then
        array[0]="$param";     
    else
        array[param]="$param";
    fi
done
echo ${array[@]} 

当我尝试测试脚本时的问题,我得到了不一致的答案。在不应该的时候排序。

例如,如果我运行'/././BASH/insert-sort.sh' 1 3 2,我会得到1 2 3

如果我跑'/././BASH/insert-sort.sh' 4 2 3我得到4 2 3

1 个答案:

答案 0 :(得分:1)

第一个参数未正确排序。无论其值如何,您始终将其分配给索引0。每隔一个$param进入第一个插槽。