#!/bin/sh
read l
ftype=`file "$l"`
case "$ftype" in
"$l:Zip archive") unzip "$l";;
"$l:gzip compressed") gunzip "$l";;
"$l:bzip2 compressed") bunzip2 "$l";;
*) echo "$l cannot be uncompressed!"
esac
-----------------------------------------------------------------------
这段代码运行结果是,无论我解压任何压缩文件,都只是显示最后一句echo语句,根本没有解压动作,
请各位大侠解救!!!
求教!关于编写一个smartzip的程序
-
- 帖子: 5
- 注册时间: 2011-08-22 10:48
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 求教!关于编写一个smartzip的程序
shell的处理空格时会比较头痛.可以这样来修改,依file命令结果的第二域来判断或者使用非空格等作为分隔符
使用case时, 变量的值要相等才会执行相应分支,否则*
你使用了中文的!
其实我更喜欢这样使用, 不使用read
使用case时, 变量的值要相等才会执行相应分支,否则*


代码: 全选
#!/bin/sh
read l
ftype=`file "$l"|awk '{print $2}'`
case "$ftype" in
"Zip") unzip "$l";;
"gzip") gunzip "$l";;
"bzip2") bunzip2 "$l";;
*) echo "$l cannot be uncompressed!"
esac
代码: 全选
#!/bin/sh
read l
ftype=`file "$l"|awk '{print $1$2"-"$3}'`
case "$ftype" in
"$l:Zip-archive") unzip "$l";;
"$l:gzip-compressed") gunzip "$l";;
"$l:bzip2-compressed") bunzip2 "$l";;
*) echo "$l cannot be uncompressed!"
esac
代码: 全选
foo.sh foo.zip
代码: 全选
#!/bin/sh
ftype=`file "$1"|awk '{print $2"-"$3}'`
case "$ftype" in
"Zip-archive") unzip "$1";;
"gzip-compressed") gunzip "$1";;
"bzip2-compressed") bunzip2 "$1";;
*) echo "$1 cannot be uncompressed!"
esac
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
-
- 帖子: 5
- 注册时间: 2011-08-22 10:48
Re: 求教!关于编写一个smartzip的程序
问题解决啦,谢谢2楼!!
不过还有一个小问题,不用read l的话,直接用foo.sh foo.gz解压不了
用read l,输入foo.gz就可以
这是为什么呢?
不过还有一个小问题,不用read l的话,直接用foo.sh foo.gz解压不了
用read l,输入foo.gz就可以
这是为什么呢?

- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 求教!关于编写一个smartzip的程序
先:em70
作为练习还是可以的.
我也不知道为什么.
后面两个解压语句使用只tar可以
rar和7z也可以添加上.
不过ee说了,现成的脚本多得是.
作为练习还是可以的.
dongzhenxu 写了:问题解决啦,谢谢2楼!!
不过还有一个小问题,不用read l的话,直接用foo.sh foo.gz解压不了
用read l,输入foo.gz就可以
这是为什么呢?

后面两个解压语句使用只tar可以
代码: 全选
tar xvf $1
不过ee说了,现成的脚本多得是.
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
-
- 帖子: 5
- 注册时间: 2011-08-22 10:48
Re: 求教!关于编写一个smartzip的程序
嗯嗯,谢谢大家了 
