怎样在命令行启动应用程序?
时间:2011-05-23
来源:互联网
代码:
#!/bin/sh
awk -v NUM=$1 -v TOPNUM=$2 '
BEGIN{
function sort(ARRAY,ELEMENTS,temp,i,j) {
for(i=2;i<=ELEMENTS;++i) {
for(j=i;(j-1) in ARRAY && ARRAY[j-1] > ARRAY[j];--j) {
temp=ARRAY[j]
ARRAY[j]=ARRAY[j-1]
ARRAY[j-1]=temp
}
}
}
if(NUM <= 0)
NUM=6
if(TOPNUM <= 0)
TOPNUM=30
srand()
printf ("pick %d of %d\n",NUM,TOPNUM)
for(x=1;x<=NUM;x++){
do {
select = 1 + int(rand() * TOPNUM)
} while (select in pick)
pick[select]=select
}
sort(pick, NUM)
for(j=1;j<NUM;++j)
printf("%d ",pick[j])
printf("\n")
}'
awk -v NUM=$1 -v TOPNUM=$2 '
BEGIN{
function sort(ARRAY,ELEMENTS,temp,i,j) {
for(i=2;i<=ELEMENTS;++i) {
for(j=i;(j-1) in ARRAY && ARRAY[j-1] > ARRAY[j];--j) {
temp=ARRAY[j]
ARRAY[j]=ARRAY[j-1]
ARRAY[j-1]=temp
}
}
}
if(NUM <= 0)
NUM=6
if(TOPNUM <= 0)
TOPNUM=30
srand()
printf ("pick %d of %d\n",NUM,TOPNUM)
for(x=1;x<=NUM;x++){
do {
select = 1 + int(rand() * TOPNUM)
} while (select in pick)
pick[select]=select
}
sort(pick, NUM)
for(j=1;j<NUM;++j)
printf("%d ",pick[j])
printf("\n")
}'
这是一个随机选号的脚本,现在的问题是,我自定义了一个函数用来给数字排序,但是运行脚本出错。提示awk: 命令行:2: function sort(ARRAY,ELEMENTS,temp,i,j) {
awk: 命令行:2: ^ syntax error
语法错误,我把自定义函数放在BEGIN外面,不报错,但是运行脚本没有随机选号的功能里,都是0.。大家帮我看看是函数定义错了,还是我调用函数不正确阿?
最后由 phf1102 编辑于 2011-05-23 22:01,总共编辑了 2 次
作者: phf1102 发布时间: 2011-05-23
怎么没人呢,问题肯定出在自定义sort函数上,但是不知道是定义的时候有问题,还是调用sort函数for循环出问题。
作者: phf1102 发布时间: 2011-05-23
phf1102 写道:
怎么没人呢,问题肯定出在自定义sort函数上,但是不知道是定义的时候有问题,还是调用sort函数for循环出问题。
代码不用 code 标签太难看把人都吓跑了吧?


作者: lilydjwg 发布时间: 2011-05-23
第2回发贴,不是很懂。

作者: phf1102 发布时间: 2011-05-23
啊,不知道怎么排版
作者: phf1102 发布时间: 2011-05-23
还是用 Vim 重排了下。
awk 的 function 不能写在 BEGIN 里边。你写到最开头就可以了。
awk 的 function 不能写在 BEGIN 里边。你写到最开头就可以了。
作者: lilydjwg 发布时间: 2011-05-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28