当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : shell编程 代码问题
帖子发表于 : 2008-04-19 18:52 
头像

注册: 2007-06-11 21:08
帖子: 70
地址: 江南水乡
送出感谢: 0 次
接收感谢: 0 次
代码:
if [ $# -ne 1 ]
then
    echo error
    exit 1
fi

char=$1
#numchar=$(echo "$char" |wc -c)

if [ "$numchar" -ne 2 ]
then
     echo error
     exit1
fi

case "$char"
   in
 [0-9])echo number;;
 [a-z])echo little;;
 [A-Z])echo big;;
  *   )echo special;;
esac

我输入
引用:
sh -x ./ctype A
的时候,输出是正确的big
可输入
引用:
./ctype A
的时候,却显示‘little’
是代码的问题还是我终端设置的问题呢?
谢谢


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-04-19 19:07 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
一般我们是加第一行
#!/bin/bash

脚本,都应该习惯指到解释器的。


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-04-19 19:18 
头像

注册: 2007-06-11 21:08
帖子: 70
地址: 江南水乡
送出感谢: 0 次
接收感谢: 0 次
代码:
 bash -x ./ctype A
+ '[' 1 -ne 1 ']'
+ char=A
+ case "$char" in
+ echo little
little

代码:
sh -x ./ctype A
+ [ 1 -ne 1 ]
+ char=A
+ echo big
big

在前面加了#!bin/bash之后,运行上面两个不同的命令,结果还是不同,这是不是解释器的不同而引起输出结果的不同呢?如果是,那对于bash,该怎么修改代码呢?
谢谢


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-04-19 19:31 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
你干嘛还强制用sh啊。那是dash啊。2个不同的。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-04-19 19:33 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
sh -x ./ctype A
换成
bash -x ./ctype A

看看 ll /bin/sh


_________________
关注我的blog: ε==3


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-04-19 19:51 
头像

注册: 2007-06-11 21:08
帖子: 70
地址: 江南水乡
送出感谢: 0 次
接收感谢: 0 次
呵呵,是sh和bash的区别了,已经解决了!
在sh中,那个代码是可以用的
可在bash里
代码:
[a-z])echo little;;
 [A-Z])echo big;;
不能用,必须改成
代码:
 [[:lower:]])echo little;;
 [[:upper:]])echo big;;


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译