当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]关于参数-n的一个小问题
帖子发表于 : 2008-05-31 21:31 

注册: 2007-10-23 14:09
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
请教下面的代码
if [ -n $var ];then
echo "not empty"
else
echo "empty"
fi
var变量我并没有赋值,将其保存为test.然后执行sh -x test,终端显示如下:
+ '[' -n ']'
+ echo 'not empty'
not empty
我很纳闷,明明是空,可为什么却说不是空呢?请教各位高手。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-05-31 21:49 
头像

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
if [ -n "$var" ]
要加引号


页首
 用户资料  
 
3 楼 
 文章标题 : [已解决]谢谢alinmn.搞定了
帖子发表于 : 2008-05-31 21:58 

注册: 2007-10-23 14:09
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
搞定了。呵呵。多谢


页首
 用户资料  
 
4 楼 
 文章标题 : [问题]再问个问题
帖子发表于 : 2008-05-31 22:05 

注册: 2007-10-23 14:09
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
#!/bin/sh
help()
{
 cat < This is a generic command line parser demo.
USAGE EXAMPLE: cmdparser -l hello -f -- -somefile1 somefile2
HELP
 exit 0
}

while [ -n "$1" ]; do
case $1 in
  -h) help;shift 1;; # function help is called
  -f) opt_f=1;shift 1;; # variable opt_f is set
  -l) opt_l=$2;shift 2;; # -l takes an argument -> shift by 2
  --) shift;break;; # end of options
  -*) echo "error: no such option $1. -h for help";exit 1;;
  *) break;;
esac
done

echo "opt_f is $opt_f"
echo "opt_l is $opt_l"
echo "first arg is $1"
echo "2nd arg is $2"
以上代码适从本论坛的shell编程基础里面copy的,可是执行sh -x cmdparser -h后,却成了个死循环,屏幕不断提示如下:
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
+ '[' -n -h ']'
+ case $1 in
这是怎么回事。好像并没有执行case的判断后的语句,可我看不出有什么错误?


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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