LinuxSir.cn,穿越时空的Linuxsir!

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

各位大虾,请问${1##*.}表示引用命令中第一个参数的扩展名么?为什么这样表示呢?

[复制链接]
发表于 2009-12-20 18:00:47 | 显示全部楼层 |阅读模式
各位大虾,请问${1##*.}表示引用命令中第一个参数的扩展名么?为什么这样表示呢?

为什么我的linux无法读取$1,怎么回事啊?
$1是读取命令行中第一个参数,对吧?可我把这个写在脚本里发现系统读不了,怎么弄啊?
发表于 2009-12-20 22:35:47 | 显示全部楼层
第一个问题可以看这个http://kingoftime3.blog.163.com/ ... 177720098603931519/

把你读$1的方法及怎么调用粘出来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-21 19:37:30 | 显示全部楼层
Post by kingoftime3;2057578
第一个问题可以看这个http://kingoftime3.blog.163.com/ ... 177720098603931519/

把你读$1的方法及怎么调用粘出来
谢谢!
一、
我去您的blog看了介绍,非常感谢。您能具体解释一下么?
${1##*.}其中的
1表示文件名么??
其中的#号,*号表示什么呢?

您能把整个表达式解释一下么?


二、
调用$1的脚本是:判断压缩包类型,并查看压缩包内容。

if [ "${1##*.}"="tar" ];then
echo "tar"
tar tvf $1
elif [ "${1##*.}"="gz" ];then
echo "gzip-compressed tar"
tar tzvf $1
elif [ "${1##*.}"="bz2" ];then
echo "bzip2-compressed tar"
cat $1|bzip2 -d|tar tvf -
fi
回复 支持 反对

使用道具 举报

发表于 2009-12-22 09:33:47 | 显示全部楼层
${1##*.}  #####拿掉最后一个.及其左边的字符串
1是变量名称
你仔细看看网中人<shell13问>第9问
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-22 18:26:25 | 显示全部楼层
Post by hyagami;2058046
${1##*.}  #####拿掉最后一个.及其左边的字符串
1是变量名称
你仔细看看网中人<shell13问>第9问
您说的是哪个帖子?我没找着,您能把帖子的链接给我么?
谢谢!
回复 支持 反对

使用道具 举报

发表于 2009-12-23 10:54:18 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2009-12-24 15:12:46 | 显示全部楼层
这里是简体版的
Shell十三问
回复 支持 反对

使用道具 举报

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

本版积分规则

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