分类: Python/Ruby
2011-04-25 22:05:41
示例:sh dsort.sh 7 8 10 1
输出:1,7,8,10
用到的知识点:
①shell的输入参数如何处理
$0 这个程式的执行名字
$n 这个程式的第n个参数值,n=1..9
$* 这个程式的所有参数
$# 这个程式的参数个数
$$ 这个程式的PID
$! 执行上一个背景指令的PID
$? 执行上一个指令的返回值
$@ 跟$*类似,但是可以当作数组用
②变量迭代eval
③判断句式:注意语法
if [ ]; then
fi
主意-gt比较大小用的,因为当时用的>发现识别出错。
④for定循环
⑤数组
⑥shell变量功能:变量累加
备注:如下实现,存在bug哟
实现:
1 #!/bash/shell
2 #Function:sort
3 #Date:2011 04 19
4 #Version:1.0.0.0
5
6 PATH=$PATH
7 LANG=C
8 export LANG
9
10 #1.read numbers处理输入的参数
11 i=$#
12 var[1]=0
13 for (( a=1; a<=$i; a=a+1 ))
14 do
15 eval var[$a]=\$$a
16 done
17
18 #2.sort 冒泡排序
19 num=""
20 for (( a=1; a<=$i-1; a=a+1 ))
21 do
22 for (( j=1; j<=$i-$a; j=j+1 ))
23 do
24 if [ "${var[$j]}" -gt "${var[$j+1]}" ]; then
25 num="${var[$j]}"
26 var[$j]="${var[$j+1]}"
27 var[$j+1]="$num"
28 fi
29 done
30 done
31
32 #3.output 按照固定格式输出
33 result=""
34 for (( a=1;a<=$i-1; a=a+1 ))
35 do
36 result="$result${var[$a]},"
37 done
38 echo "$result${var[$i]}"
39
40 exit 0