LinuxSir.cn,穿越时空的Linuxsir!

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

一个自动下载解压缩命令的源代码的脚本

[复制链接]
发表于 2007-11-24 17:26:05 | 显示全部楼层 |阅读模式
  1. #!/bin/bash
  2. if [ -z $1 ]
  3. then
  4.         echo "usage: unpack filename"
  5.         exit 1
  6. fi
  7. pkgs=$(qfile -C $1 | cut -d " " -f 1 | tr \\n " ")
  8. select pkg in $pkgs
  9. do
  10.         echo "unpacking $pkg"
  11.         break
  12. done
  13. EBUILD=$(equery w "$pkg")
  14. if [ -z $EBUILD ]
  15. then
  16.         echo "ebuild not found"
  17.         exit 1
  18. fi
  19. WORKDIR=$(sed -re 's#/.*/.*/(.*)/(.*)/(.*).ebuild#/var/tmp/portage/\1/\3#' <<< ${EBUILD})
  20. if [ -d $WORKDIR ]
  21. then
  22.         echo "${WORKDIR} exists, will be deleted"
  23.         sudo rm -rf $WORKDIR
  24. fi
  25. ebuild $EBUILD unpack
  26. echo "unpack done"
复制代码

[PHP][zhangle@adriano bin] $ unpack arp
1) sys-apps/net-tools
#? 1
unpacking sys-apps/net-tools
/var/tmp/portage/sys-apps/net-tools-1.60-r13 exists, will be deleted
* net-tools-1.60-patches-1.6.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                    [ ok ]
* net-tools-1.60.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                [ ok ]
>>> Creating Manifest for /usr/portage/sys-apps/net-tools
!!! write_atomic('/usr/portage/sys-apps/net-tools/files/digest-net-tools-1.60-r11')
* checking ebuild checksums ;-) ...                                                                                     [ ok ]
* checking auxfile checksums ;-) ...                                                                                    [ ok ]
* checking miscfile checksums ;-) ...                                                                                   [ ok ]
* checking net-tools-1.60.tar.bz2 ;-) ...                                                                               [ ok ]
* checking net-tools-1.60-patches-1.6.tar.bz2 ;-) ...                                                                   [ ok ]
>>> Unpacking source...
>>> Unpacking net-tools-1.60.tar.bz2 to /var/tmp/portage/sys-apps/net-tools-1.60-r13/work
>>> Unpacking net-tools-1.60-patches-1.6.tar.bz2 to /var/tmp/portage/sys-apps/net-tools-1.60-r13/work
* Applying 01_all_net-tools-1.60-2.6-compilefix.patch ...                                                               [ ok ]
* Applying 02_all_net-tools-1.60-gcc34.patch ...                                                                        [ ok ]
* Applying 03_all_net-tools-1.60-cleanup-list-handling.patch ...                                                        [ ok ]
* Applying 04_all_net-tools-1.60-get_name.patch ...                                                                     [ ok ]
* Applying 20_all_net-tools-1.54-ipvs.patch ...                                                                         [ ok ]
* Applying 21_all_net-tools-1.57-bug22040.patch ...                                                                     [ ok ]
* Applying 22_all_net-tools-1.60-manydevs.patch ...                                                                     [ ok ]
* Applying 23_all_net-tools-1.60-miiioctl.patch ...                                                                     [ ok ]
* Applying 24_all_net-tools-1.60-virtualname.patch ...                                                                  [ ok ]
* Applying 25_all_net-tools-1.60-cycle.patch ...                                                                        [ ok ]
* Applying 26_all_net-tools-1.60-overflow.patch ...                                                                     [ ok ]
* Applying 27_all_net-tools-1.60-netstat_ulong.patch ...                                                                [ ok ]
* Applying 50_all_net-tools-1.60-multiline-string.patch ...                                                             [ ok ]
* Applying 51_all_net-tools-1.60-man.patch ...                                                                          [ ok ]
* Applying 52_all_net-tools-1.60-numeric-ports.patch ...                                                                [ ok ]
* Applying 53_all_net-tools-1.60-appletalk.patch ...                                                                    [ ok ]
* Applying 54_all_net-tools-1.60-wide.patch ...                                                                         [ ok ]
* Applying 55_all_net-tools-1.60-Makefile.patch ...                                                                     [ ok ]
* Applying 56_all_net-tools-1.60-ipv6-hostname.patch ...                                                                [ ok ]
* Applying 57_all_net-tools-1.60-ifconfig-infiniband.patch ...                                                          [ ok ]
* Applying 60_all_net-tools-1.60-headers.patch ...                                                                      [ ok ]
* Applying 70_all_net-tools-1.60-unaligned.patch ...                                                                    [ ok ]
>>> Source unpacked.
unpack done
[/PHP]
发表于 2007-11-24 20:28:29 | 显示全部楼层
echo "usage: unpack filename"
改为 echo "usage: $0 filename" 比较好,毕竟前面没说要叫unpack。
如何把$0的路径去掉?

select pkg in $pkgs 这步能把提示做i好看些吗?
回复 支持 反对

使用道具 举报

发表于 2007-11-24 20:52:02 | 显示全部楼层
echo "usage: unpack filename"
改为 echo "usage: $0 filename" 比较好,毕竟前面没说要叫unpack。
如何把$0的路径去掉?

select pkg in $pkgs 这步能把提示做i好看些吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-24 22:53:21 | 显示全部楼层
Post by galaxy001;1787194
echo "usage: unpack filename"
改为 echo "usage: $0 filename" 比较好,毕竟前面没说要叫unpack。
如何把$0的路径去掉?

select pkg in $pkgs 这步能把提示做i好看些吗?

basename

我的目的只是把它分享出来,我并不准备再投入什么时间改进它。你觉的有用,你拿去用,你觉你可以改进,你可以去改进。
回复 支持 反对

使用道具 举报

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

本版积分规则

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