设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
请教一个判断shell程序参数问题
1
2
/ 2 页
返回列表
楼主:
Bomber
请教一个判断shell程序参数问题
[复制链接]
Bomber
Bomber
当前离线
积分
98
IP卡
狗仔卡
楼主
|
发表于 2003-8-7 11:10:16
|
显示全部楼层
看得不太懂上面两句话
基础知识太差,去找书看看咯!
:p
回复
支持
反对
使用道具
举报
显身卡
benzy
benzy
当前离线
积分
19
IP卡
狗仔卡
发表于 2003-8-7 19:39:42
|
显示全部楼层
嗯,test可以判断是不是整数
但小数怎么办呢?perl的话可以用正则表达式:(
btw:解释一下
$? 是上一个命令的返回码,-eq是用于数值比较的,
test $1 -eq 0 执行后返回 2 表示 $1不是整数
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-8-7 20:21:56
|
显示全部楼层
这样来判断你输入的是否是数字而且判断是否是整数或小数,没怎么调试,;)不知道是否可行?!
#!/bin/ksh
#
n=$(echo "$1*1"|bc)
if [[ $n == $1 ]]
then
if echo $1|grep "\." >/dev/null
then
echo "$1是小数"
else
echo "$1是整数"
fi
else
echo "$1不是数字"
fi
复制代码
回复
支持
反对
使用道具
举报
显身卡
Glue
Glue
当前离线
积分
3129
IP卡
狗仔卡
发表于 2003-8-8 00:06:39
|
显示全部楼层
还是用了shell以外的 bc 及 grep 等。
总之shell还是比perl简单了一点
回复
支持
反对
使用道具
举报
显身卡
Bomber
Bomber
当前离线
积分
98
IP卡
狗仔卡
楼主
|
发表于 2003-8-8 11:01:33
|
显示全部楼层
嘿嘿~~大大的收获!!!
感谢各位!:thank
回复
支持
反对
使用道具
举报
显身卡
benzy
benzy
当前离线
积分
19
IP卡
狗仔卡
发表于 2003-8-10 22:53:45
|
显示全部楼层
啊,对了,还可以用grep ,哈哈,那就好办了,可以用regular expr了
:)
benzy@localhost tmp $ cat test.sh
#!/bin/sh
echo $1|grep -qE '^[0-9]*\.?[0-9]*$' && echo ok || echo error
# grep -E 表示匹配扩展的正则表达式 -q表示安静模式
benzy@localhost tmp $ ./test.sh 3.14
ok
benzy@localhost tmp $ ./test.sh 3.14a
error
benzy@localhost tmp $ ./test.sh 1243
ok
benzy@localhost tmp $ ./test.sh .1243
ok
benzy@localhost tmp $ ./test.sh a.1243
error
benzy@localhost tmp $ ./test.sh abc
error
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-8-11 00:09:49
|
显示全部楼层
不错!,;)有那么多"利器",为什么不充分发挥他们的效能呢?!;)
回复
支持
反对
使用道具
举报
显身卡
1
2
/ 2 页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表