Chinaunix首页 | 论坛 | 博客
  • 博客访问: 72150
  • 博文数量: 47
  • 博客积分: 1230
  • 博客等级: 中尉
  • 技术积分: 525
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-22 13:59
文章分类

全部博文(47)

文章存档

2012年(9)

2011年(38)

分类: 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

阅读(697) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~