Shell制作自安装脚本


作者:lingyun 来源:凌云物网智科实验室 时间:2014-01-25

Author:  GuoWenxue<武汉凌云嵌入式实验室 QQ:281143292>

转载申明来自:   http://www.iot-yun.com/

自己配置好了一个vim的配置文件,现在想把这个vim配置文件共享给实验室学生使用。之前我是把这些vim的配置文件打包好后给实验室学生,然后他们解压缩到自己Home下后再对文件手动进行修改。为了方便安装,现在我把他制作成了一个shell自安装的文件,其制作和安装过程:

制作自安装文件过程如下(其中install.sh脚本下面再给出):

[guowenxue@centos6 ~]$ tar -czf vim_conf.tar.gz .vim .vimrc               创建压缩包
[guowenxue@centos6 ~]$ cat install.sh vim_conf.tar.gz > vim_conf.bin  将两个文件打包成单个文件
[guowenxue@centos6 ~]$ chmod a+x vim_conf.bin                                 给文件执行的权限

安装过程:

[guowenxue@centos6 ~]$ chmod a+x vim_conf.bin
[guowenxue@centos6 ~]$ ./vim_conf.bin

Backup original configure files in /home/guowenxue/.vimbak
Please input your C file head default Author Name: Guo Wenxue   C代码文件头默认作者名
Please input your C file head default Email Address: guowenxue@gmail.com C代码文件头默认邮箱
Please input your C file head default company Name:     输入代码版权所属公司,如果没有使用作者
Install vim configure files to /home/guowenxue

这时,使用vim创建一个C文件时会自动添加如下文件头:

[guowenxue@centos6 ~]$ vim test.c

/*********************************************************************************
* Copyright: (C) 2014 Guo Wenxue<guowenxue@gmail.com>   如果输入公司名,这里将用公司名
* All rights reserved.
*
* Filename: test.c
* Description: This file
*
* Version: 1.0.0(01/25/2014)
* Author: Guo Wenxue <guowenxue@gmail.com>  前面设置的用户名和邮箱
* ChangeLog: 1, Release initial version on “01/25/2014 01:39:23 AM”
*
********************************************************************************/

 

install.sh的工作原理:

1, 在制作vim_conf.bin时我们使用命令:
cat install.sh vim_conf.tar.gz > vim_conf.bin
该命令用来将install.sh和vim_conf.tar.gz这两个文件合并成一个单独的文件vim_conf.bin

2, 然后在执行./vim_conf.bin时,就会执行文件开头的shell脚本insta.sh,在该脚本中会执行:
sed -n ‘1,/^exit 0$/!p’ $0 | tar -xz -C ~
该命令用来从vim_conf.bin中找到以exit 0开头和结尾的行(即正则表达式^exit 0$),而exit 0正好是install.sh的最后一行。然后把紧接着该行剩下的所有文件内容输出到管道中,而这些正是vim_conf.tar.gz这个文件(参考vim_conf.bin制作的命令),之后的tar -xz -C ~就是把vim_conf.tar.gz这个压缩包解压缩到$HOME下去了,完成安装工作。

下面是install.sh的源代码:

#!/bin/bash
# This shell script used to install the vim configure files
# Author: Guo Wenxue<guowenxue@gmail.com>

VIM_BAK=~/.vimbak
INST_PATH=~
if [ -d ~/.vim -o -f ~/.vimrc ] ; then
    echo "Backup original configure files in $VIM_BAK"
    mkdir -p $VIM_BAK
    mv -f ~/.vim $VIM_BAK
    mv -f ~/.vimrc $VIM_BAK
fi

echo -n "Please input your C file head default Author Name:  "
read author

echo -n "Please input your C file head default Email Address:  "
read email

echo -n "Please input your C file head default company Name:  "
read company

if [ ! -n "$author" -o ! -n "$email" ] ; then
    echo "ERROR: Must give default author name and email."
    exit -1;
fi

# Get the compress packet from the file and decompress it to $HOME
echo "Install vim configure files to path: $HOME
sed -n '1,/^exit 0$/!p' $0 | tar -xz -C ${INST_PATH}

# Use sed command to modify the Author information
file1=~/.vim/c-support/templates/Templates
sed -i -e "s/^|AUTHOR|.*/|AUTHOR|    = $author/g" $file1
sed -i -e "s/^|EMAIL|.*/|EMAIL|     = $email/g"    $file1

# Use sed command to modify the copyright information
file2=~/.vim/c-support/templates/c.comments.template
if [ -n "$company" ] ; then 
    sed -i -e "s/Copyright.*/Copyright:  (C) |YEAR| $company/g" $file2
else
    sed -i -e "s/Copyright.*/Copyright:  (C) |YEAR| $author<$email>/g" $file2
fi

#Be careful: The last line must start and end by "exit 0", no any other character followd.
exit 0

 

 

 

在线咨询
微信号
13554373241
联系方式
135-5437-3241
邮箱
guowenxue@aliyun.com
返回顶部