0

有关如何确保 post 脚本运行的任何提示?我有一个 pre & post shell 脚本,我在 shar 文件之前和之后附加,发生的情况是应该提取我的 tar 的 post 脚本没有执行。所以我做了以下事情:

  1. 创建 Pre.sh 和 post.sh
  2. 创建了一个创建 shar 脚本,该脚本执行以下操作:

    cat Pre.sh > $sharfile
    shar my.tar.gz >> $sharfile 
    cat Post.sh >> $sharfile 
    

create shar 具有 tar.gz 名称的第一个参数,因此基本上我可以控制传递给 create_shar 脚本的 tar。

为了调试,我将 set -x 放在 Pre 脚本中,但输出只是在将 tar 解压(而不是提取)到当前目录后终止,然后退出。

一定是我在这里想念的非常简单的东西......

4

1 回答 1

1

首先,使用 shar 打包一个文件,任何文件。不要使用任何重定向,以便您在标准输出上看到命令。请注意,您看到的最后一行是exit 0. 这就是导致您的复合脚本在解包后退出的原因my.tar.gz

怎么修:

cat Pre.sh > $sharfile
shar my.tar.gz | sed '/^exit 0/d' >> $sharfile 
cat Post.sh >> $sharfile 

这将删除exit 0从 shar 开始的最后一行,并允许 Post.sh 脚本运行。

于 2013-04-11T15:07:46.337 回答