免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1434 | 回复: 5
打印 上一主题 下一主题

大家帮忙看个shell脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-07 14:01 |只看该作者 |倒序浏览
[root@localhost home]# cat spring.sh
#!/bin/bash
if [ "${1##*.}"="tar" ]
then
echo "ture"
else
echo "flase"
fi

原意是想参数后缀为.tar的输出ture  非.tar是输出flase
可现在这个结果总是ture。不管我输入什么都是的!
请大家多多指点!


大家好我已经解决了,是那个"="的问题         正确的写法为"  =  " (等号两边要加上空格)   


疑问:这个怎么注意呢?大家有经验吗?

[ 本帖最后由 springshen 于 2009-8-7 14:05 编辑 ]

论坛徽章:
34
亥猪
日期:2015-03-20 13:55:11戌狗
日期:2015-03-20 13:57:01酉鸡
日期:2015-03-20 14:03:56未羊
日期:2015-03-20 14:18:30子鼠
日期:2015-03-20 14:20:14丑牛
日期:2015-03-20 14:20:31辰龙
日期:2015-03-20 14:35:34巳蛇
日期:2015-03-20 14:35:56操作系统版块每日发帖之星
日期:2015-11-06 06:20:00操作系统版块每日发帖之星
日期:2015-11-08 06:20:00操作系统版块每日发帖之星
日期:2015-11-19 06:20:00黄金圣斗士
日期:2015-11-24 10:43:13
2 [报告]
发表于 2009-08-07 14:57 |只看该作者

回复 #1 springshen 的帖子

多用几次就好了。

论坛徽章:
2
丑牛
日期:2014-06-11 13:55:04ChinaUnix元老
日期:2015-02-06 15:16:14
3 [报告]
发表于 2009-08-07 15:33 |只看该作者

回复 #1 springshen 的帖子

一般来讲“”外面都要留空格

论坛徽章:
0
4 [报告]
发表于 2009-08-07 16:44 |只看该作者

回复 #3 山野村夫 的帖子

注意留空格!

#!/bin/bassh

if [ "${1##*.}" = "tar" ] ; then
    echo "TRUE"
else
    echo "FALSE"
fi

论坛徽章:
0
5 [报告]
发表于 2009-08-07 23:14 |只看该作者
原帖由 lyjinger 于 2009-8-7 16:44 发表
注意留空格!

#!/bin/bassh

if [ "${1##*.}" = "tar" ] ; then
    echo "TRUE"
else
    echo "FALSE"
fi



脚本中的${1##*.}是什么意思阿?
能解释下? 

论坛徽章:
0
6 [报告]
发表于 2009-08-08 09:55 |只看该作者
原帖由 jiannma 于 2009-8-7 23:14 发表



脚本中的${1##*.}是什么意思阿?
能解释下? 


(1)使用##代表的是尽可能的匹配(使用贪婪算法), 删除从开头开始的字符串匹配, 如:
(2)使用#和##两者区别在于#是优先匹配.
(3)同理%%和%是说后面开始匹配的内容

FNAME="/tmp/tmp.FKEU/file.txt"

echo ${FNAME##*/}           这个返回的是file.txt
echo ${FNAME%/*}             这个返回的是目录/tmp/tmp.FKEU
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP