文章目录
        
            
        
    
    
    
    
                  二进制的文件需要将压缩包的数据和shell脚本打包的为一个整体
为避免多个sh文件使用 cat << EOF  来生成上面的sh文件,这样只需要下面这个sh文件就可以将指定的文件夹压缩,同时添加 执行命令那部分内容
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 
 | 
 echo '压缩文件。。。'
 
 
 INSTALL_DIR=$(cd `dirname $0`; pwd)
 
 tar -zcvf  $INSTALL_DIR/XXXX.tar.gz  $INSTALL_DIR/install/*
 cat << EOF >>$INSTALL_DIR/install.sh
 #!/bin/bash
 #Test shell self-extracting
 TmpDir=/tmp/XXX
 
 TARGET_DIR=./XXX
 
 
 if [ ! -d \${TmpDir} ]; then
 
 mkdir \$TmpDir
 echo \$TmpDir  路径下不存在,正在创建
 else
 echo \$TmpDir 文件将会被覆盖
 rm -rf  \$TmpDir/*
 fi
 
 ARCHIVE=\$(awk '/^__ARCHIVE_BELOW__/ {print NR + 1; exit 0; }' "\$0")
 tail -n+\$ARCHIVE "\$0" | tar -xzvm -C \$TmpDir > /dev/null 2>&1 3>&1
 
 if [ ! -d \${TARGET_DIR} ]; then
 
 echo \$TARGET_DIR 路径下不存在现在创建
 mkdir \${TARGET_DIR}
 else
 echo \$TARGET_DIR 路径下的文件将会被覆盖
 rm -rf  \${TARGET_DIR}/*
 
 fi
 cp -R \$TmpDir/*  \${TARGET_DIR}
 
 
 echo '-------------------------------------------------------------------------------------------------'
 echo '********************************准备初始化 服务****************************************'
 echo '-------------------------------------------------------------------------------------------------'
 
 /bin/sh  \$TARGET_DIR/install.sh
 
 
 exit 0
 #This line must be the last line of the file
 __ARCHIVE_BELOW__
 EOF
 
 
 cat $INSTALL_DIR/install.sh $INSTALL_DIR/XXX.tar.gz >  $INSTALL_DIR/XXX_install.run
 rm -f XXX.tar.gz
 rm -f install.sh
 
 
 |