LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 0100

请帮我看看这些错误(重复,已合并)

[复制链接]
 楼主| 发表于 2003-5-18 01:11:47 | 显示全部楼层
冤枉.(或者你是讥笑我的无知)
我是为了完成老师布置的作业.
发表于 2003-5-18 01:17:12 | 显示全部楼层
在怎么论坛,兄弟们之间相互帮助那是天经地义的,谁让我们都喜欢linux呢?我丝毫也没有别的意思,!!!
比如你的if和($# !=1),他们之间明摆着是要有空格的,而你发的每此都是挨着的,那么肯定要出错!
你说的北南的开关的问题,你至今也没有把你的情况说清楚,那大家怎么给你解释呢?!
由于csh/tcsh的特殊性,我也不太熟悉,但是bash,sh,bsh,ksh我还是有把握的,至少我们不要在语法/格式上犯低级错误,大家都是初学者,相互帮助,我们都能提高,我的热心是出于对论坛的责任感,也许我当初问的问题比你的还菜,(没有别的意思),我有不周之处,望见谅
 楼主| 发表于 2003-5-18 01:19:56 | 显示全部楼层
版主兄.
你所说的空格.我加了N次.[]也加上了.唯一不同的就是提示错误时.有没有显示[]而已.我改成()也还是不行.
我已经把我的整个程序(前面只是一部分)放在老师的服务器上.让我的老师帮我看了.
谢谢两位.
发表于 2003-5-18 01:22:18 | 显示全部楼层
SORRY~~~~~~~~~~~
WHAT IS YOUR HOMEWORK?
CAN YOU TELL ME? I HELP YOU!
发表于 2003-5-18 01:23:21 | 显示全部楼层
[]的两边要有空格,中间也要空格。
 楼主| 发表于 2003-5-18 01:40:10 | 显示全部楼层
javalee兄.你可能觉得帮我做作业比教我更容易.但我能学到什么呢?
我希望能自己做.tram兄.我是有加空格的.
#! /bin/bash
if [$#! =2]
then
echo You must input the month and years
elif [$2! ~"200*"]
then
echo Your years format is not right.
fi
这样会错吗?
 楼主| 发表于 2003-5-18 01:44:25 | 显示全部楼层
javalee兄.为什么你的if ($# !=1)
用的是().但tram兄教我用的是[].而且你的!与=号之间没有空格.我的书里却强调一定要有空格.不过书里的if与()是没有空格的.我估计是书有问题.
发表于 2003-5-18 01:50:08 | 显示全部楼层
sorry~~~
把你的
if [$#! =2]
改成
if ($# != 2 )
你的elif [$2! ~"200*]
改成
elif [[ $2 != "200*" ]]      //[[]]支持通配符扩展,如*
试试吧~~
发表于 2003-5-18 01:57:25 | 显示全部楼层
()一般是对数字进行比较
[]一般是对字符/串进行比较,他的缺点不如用[[ ]],因为[[]]支持通配符,如*.
用[]的时候,注意每项要留有空格,而()就不需要,但是像($#!=1),还是写成($# != 1)好些.;)
 楼主| 发表于 2003-5-18 10:51:43 | 显示全部楼层
其实我的作业就是写个mycal实现cal的功能.可以用cal
我总不能写一句cal $1 $2就行了吧?但又不知道加什么好.就画蛇添足.加了两个判断参数的语句.
[st1866@localhost st1866]$ cat mycal
#! /bin/bash
if [$#! = 2]
then
echo You must input the month and years
elif [[$2! = "200*"]]
then
echo Your years format is not right.
cal $1 $2
fi
[st1866@localhost st1866]$ mycal
/home/st18xx/st1866/mycal: [0!: command not found
/home/st18xx/st1866/mycal: [[!: command not found
[st1866@localhost st1866]$
不加空格不行.加了空格也这样.真奇怪.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表