QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1045|回复: 9

大家请帮忙看下这段SHELL代码有什么问题?

[复制链接]
发表于 2005-5-17 16:16:53 | 显示全部楼层 |阅读模式
[code:1]
#!/bin/sh
#测试''(引号)的运用

SYS='uname -s'
eval $SYS
[/code:1]

#此处输出结果为 Linux,没错

[code:1]
case $SYS in
'uname -s')
echo "erro!"
;;
"Linux")
echo "My system is Linux"
;;
"Windows")
echo "My system is Windows"
;;
Unix)
echo "My system is Unix"
;;
*)
echo "Unknown: "
;;
esac
[/code:1]

#上面这段代码竟然输出的是:
#erro!
#为什么?相当于将uname -s作为一个字符串输出来了
#但我的本意是输出"My system is Linux",
#试着改SYS="uname -s"也是一样的结果

[code:1]
if uname="Linux";then
echo "My system is Linux"
fi
[/code:1]

#此处直接执行命令,输出为My system is Linux
#没错
#但如果改成

[code:1]
if $SYS="Linux";then
echo "My system is Linux"
fi
[/code:1]

#后,就提示如下的出错信息:
#uname:无效选项 -- =
#请尝试执行‘uname --help’来获取更多信息
#############
#请高手指点一下,不甚感激。
发表于 2005-5-17 19:19:14 | 显示全部楼层
想想eval在第一个中的作用,如果没有eval会是什么样呢?
回复

使用道具 举报

发表于 2005-5-17 21:14:26 | 显示全部楼层
签名好大
打开好慢
:neutral:
回复

使用道具 举报

 楼主| 发表于 2005-5-18 09:51:04 | 显示全部楼层
[quote:8efa61d9b9="zhy2111314"]想想eval在第一个中的作用,如果没有eval会是什么样呢?[/quote]

没有eval的话,就不会输出第一句:Linux
其他的完全是一样的。我刚刚试过。
谢谢解答。
ps:我把签名关掉。。。。。。
回复

使用道具 举报

 楼主| 发表于 2005-5-23 10:07:01 | 显示全部楼层
路过的高手,请帮个忙,谢谢了
回复

使用道具 举报

发表于 2005-5-24 00:34:56 | 显示全部楼层
[code:1]if $SYS="Linux";then[/code:1]

改为 ...

[code:1]if $SYS = "Linux";then[/code:1]

等号两边的玩意儿不要挨着那么紧, 空一格!
(不要问我为什么要空一格, 我不记得了, 自己翻书去吧)
回复

使用道具 举报

 楼主| 发表于 2005-5-24 10:42:54 | 显示全部楼层
[quote:f9dce483a2="bao_paul"][code:1]if $SYS="Linux";then[/code:1]

改为 ...

[code:1]if $SYS = "Linux";then[/code:1]

等号两边的玩意儿不要挨着那么紧, 空一格!
(不要问我为什么要空一格, 我不记得了, 自己翻书去吧)[/quote]

谢谢楼上。我试了还是不行,跟空格完全没有关系,还是一样的错误。我百思不得其解啊,为什么呢?
回复

使用道具 举报

发表于 2005-5-24 11:30:55 | 显示全部楼层
[quote:f68f3d53f5="ajingdd"]谢谢楼上。我试了还是不行,跟空格完全没有关系,还是一样的错误。我百思不得其解啊,为什么呢?[/quote]

怎么不行啊?? 我都试过了, 我这儿没问题啊!

把你的完整例子贴出来, 把你的错误信息贴出来, 完整的啊!
回复

使用道具 举报

发表于 2005-5-24 12:50:40 | 显示全部楼层
子西看一看case和eval的用法
回复

使用道具 举报

发表于 2005-5-24 13:05:58 | 显示全部楼层
这个应该与eval有关,你看下置顶的bash命令行处理详解,里面有eval的详细说明,我现在外面,回去后再给你试验一下!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-7-8 14:12 , Processed in 0.077415 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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