LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 885|回复: 6

脚本问题!困扰多日,请教高手。

[复制链接]
发表于 2006-3-22 19:32:53 | 显示全部楼层 |阅读模式
有一个配置文件内容如下:
cat date.conf
ENABLE=YES

在一个脚本中调用它
脚本开始
if [ -f date.conf ]
then
  while read LINE
    eval $LINE
  done < date.conf
fi

echo $ENABLE ;;这条可以显示 YES

if [ "$ENABLE" = "YES"]
then
   echo "应该可以显示这条吧,可怎么也显示不出来"
fi
脚本结束
发表于 2006-3-22 21:40:06 | 显示全部楼层
我没问题,在看看syntax吧,说不定哪里格式上有问题
回复 支持 反对

使用道具 举报

发表于 2006-3-23 07:49:39 | 显示全部楼层
if [ "$ENABLE" = "YES"]

测试应该用双等号“==”
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-23 08:30:57 | 显示全部楼层
楼上所言极是,对比文本时应该用==,但我用==也不能正常显示对比后的结果。

如果单行显示变量,如:
echo $ENABLE 可正常显示
echo $ENABLE $ABC 则只能显示$ABC ,之前的$ENABLE不能正常显示,这到底是为什么呀?

我又发现一个奇怪的现象,如果$ABC=1,则echo $ENABLE $ABC 输出结果为:
ES
前面的Y被1给替换了。我晕晕呀。。。。。
回复 支持 反对

使用道具 举报

发表于 2006-3-23 11:10:35 | 显示全部楼层
  1. $ cat date.conf
  2. ENABLE=YES
  3. $ cat nn
  4. #!/bin/bash
  5. while read LINE
  6. do
  7. eval $LINE
  8. done <date.conf
  9. if [ "$ENABLE" = "YES" ]
  10. then
  11. echo "show"
  12. fi
  13. $ ./nn
  14. show
  15. $
复制代码
没问题。
字符比较用=而非==
另外你可把脚本改写成这样会更简洁:
  1. [ -f date.conf ] && . date.conf
  2. [ "$ENABLE" = "YES" ] && echo "show"
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-23 14:03:31 | 显示全部楼层
谢谢楼上的各位兄弟,已解决,原来是配置文件的问题,重新写一个就OK了,真是迷糊。

版主的脚本写法很精简,请问是在哪里学的?
回复 支持 反对

使用道具 举报

发表于 2006-3-23 21:33:21 | 显示全部楼层
这儿学来的
  1. [kiron@home src]$ head -20 /etc/init.d/functions
  2. # -*-Shell-script-*-
  3. #
  4. # functions     This file contains functions to be used by most or all
  5. #               shell scripts in the /etc/init.d directory.
  6. #
  7. TEXTDOMAIN=initscripts
  8. # Make sure umask is sane
  9. umask 022
  10. # Set up a default search path.
  11. PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
  12. export PATH
  13. # Get a sane screen width
  14. [ -z "${COLUMNS:-}" ] && COLUMNS=80
  15. [ -z "${CONSOLETYPE:-}" ] && CONSOLETYPE="`/sbin/consoletype`"
  16. [kiron@home src]$ uname -a
  17. Linux home 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 athlon i386 GNU/Linux
  18. [kiron@home src]$
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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