请教一个帖子的问题
-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
- wjchen
- 帖子: 583
- 注册时间: 2011-05-02 19:08
- 系统: ubuntu 12.04
Re: 请教一个帖子的问题
帖子地址不完整…… 

-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
Re: 请教一个帖子的问题
感谢提醒,这次可以了wjchen 写了:帖子地址不完整……
- wjchen
- 帖子: 583
- 注册时间: 2011-05-02 19:08
- 系统: ubuntu 12.04
Re: 请教一个帖子的问题
self.bin由两部分组成:
第一次sed删除self.bin中的1~3行的内容(因为第三行包含BIGIN SELFEXTR),第二次sed删除4~9行的内容,剩下的就是exsam.tar.gz的内容,再重定向到/tmp/self/test.tar.gz
代码: 全选
#!/bin/bash
[ -d /tmp/self ]|| mkdir -p /tmp/self
sed -e '1,/BIGIN SELFEXTR/d' $0 |sed -e '1,/BIGIN SELFEXTR/d' > /tmp/self/test.tar.gz
( cd /tmp/self ;
tar xvfz test.tar.gz;
. exsample1
)
exit 0
#BIGIN SELFEXTR
exsam.tar.gz的内容(一些两进制乱码)
-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
Re: 请教一个帖子的问题
wjchen 写了:self.bin由两部分组成:第一次sed删除self.bin中的1~3行的内容(因为第三行包含BIGIN SELFEXTR),第二次sed删除4~9行的内容,剩下的就是exsam.tar.gz的内容,再重定向到/tmp/self/test.tar.gz代码: 全选
#!/bin/bash [ -d /tmp/self ]|| mkdir -p /tmp/self sed -e '1,/BIGIN SELFEXTR/d' $0 |sed -e '1,/BIGIN SELFEXTR/d' > /tmp/self/test.tar.gz ( cd /tmp/self ; tar xvfz test.tar.gz; . exsample1 ) exit 0 #BIGIN SELFEXTR exsam.tar.gz的内容(一些两进制乱码)
呵呵,谢谢,我忘了sed 里还有BIGIN SELFXTR
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
Re: 请教一个帖子的问题
恩,的确用兄台的方法用一次sed就行了
不过兄台没有自己运行过吧?
你直接通过管道传递给tar的方法是行不通的,用以下代码就知道:
代码: 全选
cat example.tar.gz | tar xvfz
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 请教一个帖子的问题
管道为什么不行,我的tar命令中没有那个 f 噢。
个人感觉在这里没必要用 subshell,所以没用。
个人感觉在这里没必要用 subshell,所以没用。
-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
Re: 请教一个帖子的问题
aerofox 写了:管道为什么不行,我的tar命令中没有那个 f 噢。
个人感觉在这里没必要用 subshell,所以没用。

至于subshell ,单纯从这个脚本来说没必要,但是兄台看看我引用的那个帖子就知道了,原帖子中subshell的必要性
当然,这还是看个人爱好,哈哈
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 请教一个帖子的问题
老实说,我没有看出原贴中有必要使用 subshell。
在 subshell 返回后立即执行了 exit 命令,因而靠 subshell 保护当前 shell 的环境不被修改没有什么意义。
在 subshell 返回后立即执行了 exit 命令,因而靠 subshell 保护当前 shell 的环境不被修改没有什么意义。
-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
Re: 请教一个帖子的问题
但是如果发现自己在安装完或者执行完一个命令后发现自己当前目录变了,aerofox 写了:老实说,我没有看出原贴中有必要使用 subshell。
在 subshell 返回后立即执行了 exit 命令,因而靠 subshell 保护当前 shell 的环境不被修改没有什么意义。
而你在原来的目录下还有其他要做的事,然后你自己再cd回去?
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 请教一个帖子的问题
你要写的是一个脚本程序(里面实际上打包了数据),用户在执行这个脚本程序时实际上就启动了一个 subshell(除非他非得要用 . 或者 source 命令执行,那是他蛋疼),在这个 subshell 中再怎么改变工作目录,exit 0 时就全没了,恢复到用户 shell 的环境。
-
- 帖子: 19
- 注册时间: 2012-02-13 10:58
Re: 请教一个帖子的问题
aerofox 写了:你要写的是一个脚本程序(里面实际上打包了数据),用户在执行这个脚本程序时实际上就启动了一个 subshell(除非他非得要用 . 或者 source 命令执行,那是他蛋疼),在这个 subshell 中再怎么改变工作目录,exit 0 时就全没了,恢复到用户 shell 的环境。

哈哈,受教了