分页: 1 / 1

shell脚本调用一个软件包中的脚本 可否不安装那个软件包

发表于 : 2011-02-12 14:23
yjqg6666
比如说我的脚本中要使用zcat这个命令 但是zcat这个命令并不是所有发行版本上都有(假设)
我可不可以把zcat那个文件的内容作为一个自定义函数 函数内容就是脚本的内容 然后在我的脚本中调用就行了
cat /bin/zcat
#!/bin/bash
PATH=${GZIP_BINDIR-'/bin'}:$PATH
exec gzip -cd "$@"
比如zcat tt.tar.gz 脚本的名字叫check.sh
这样用要不要得

代码: 全选

#cat check.sh
#! /bin/bash
function zcat(){
PATH=${GZIP_BINDIR-'/bin'}:$PATH
exec gzip -cd "$@"
}
zcat $1

代码: 全选

./check.sh tt.tar.gz

Re: shell脚本调用一个软件包中的脚本 可否不安装那个软件包

发表于 : 2011-02-12 14:46
tusooa
直接

代码: 全选

ln -sv /bin/gzip /path/to/bin/zcat
然后执行/path/to/bin/zcat就可以了。
其实zcat就是gzip的一个链接。

Re: shell脚本调用一个软件包中的脚本 可否不安装那个软件包

发表于 : 2011-02-12 19:28
astolia
既然zcat只是带有特定参数的gzip,为什么不直接用gzip,非要用zcat呢

Re: shell脚本调用一个软件包中的脚本 可否不安装那个软件包

发表于 : 2011-02-12 23:17
yjqg6666
astolia 写了:既然zcat只是带有特定参数的gzip,为什么不直接用gzip,非要用zcat呢
整个就是举个例子 可不可以不装那个包 直接把脚本的内容作为一个函数 放在脚本的前面 后面调用是不是跟直接运行那个命令是同样的效果 有没有什么区别