2011-11-29 42 views
2

我的问题是我如何可以通过命令行参数迭代,如果允许的参数个数是一个变量:在命令行参数中作为参数排序fn中的Bash Shell脚本中的整数?

例如:

./sort.sh n <n integers to sort> 
./sort.sh 5 3 4 2 1 5 

我尝试迭代它通过一个for循环,并把它一个.txt文件,用于排序功能,但由于定界符(比如说i)只接受常量,所以会出现问题。

谢谢。 :D

+0

你好,以下是不考虑$ 1或者决定输入大小的第一个参数的答案。如何根据第一个参数对以下参数进行排序? – ThisGuy

回答

3

您不需要参数的数量。你可以在脚本中使用$#

而且你不需要循环参数。只需将它们每行传递给sort -n即可。

类似于:printf "%s\n" [email protected] | sort -n

+0

谢谢。我想我会试试这个。 :D – Joshua

+0

@mouviciel,如何根据决定输入大小的第一个参数对下列参数进行排序? – ThisGuy

+0

@ThisGuy - 如果第一个参数与以下参数的数量不一致,该怎么办? – mouviciel

2
echo 2 4 3 1 5 | fmt -s -w 1 | sort -n 

是什么?

+0

排序的整数参数数量是可变的。可以说,10个整数。 :D我需要以某种方式解析它。我尝试了$ i并遍历我的,但没有奏效。 – Joshua

+0

但是,它不是多余的,难道你不能跳过它吗?或者,你当然可以'输出-n $ n'的输出。或者你可以为((i = 0; i <$ n; ++ i))任何你想要的。 –