您的位置:首页 > 运维架构 > Shell

根据输入选项shell脚本添加信息

2017-05-15 10:27 246 查看
此脚本只是练习(存在冗余代码)函数使用方法、判断及循环。如完善代码后可在/bin下生成连接脚本,随时使用。

1 #!/bin/bash
2 #Author:samrtwy(WeChat:smart_wy)
3 #Version:2.1
4 #Date:2017-05-13
5 #Descripton: add script description info for option
6 #
7
8 filename=$(cd $(dirname $1) && pwd)/$1 || exit 1 #获取文件的完全路径,失败退出
9
10 function option() { #option 函数声明
11 for tm in $@ #循环处理选项
12 do
13         arg=$1
14         meg=$2
15         case $arg in #处理传递的参数
16             -a|--author)
17             sed -i "/[Aa]uthor/d" $filename # 删除旧信息
18             sed -i "2c# Author:  ${meg}" $filename # 添加新信息
19             [ $? -eq 0 ] && echo -e "Add Autor OK !\n" # 提示添加成功
20             shift 2 # 切掉处理过的参数,下同
21             [[ -z $@ ]] && exit 0 # 如果没有参数退出
22             ;;
23             -t|--time)
24             sed -i "/[Tt]ime/d" $filename
25             sed -i "3c# Time:    ${meg}" $filename
26             [ $? -eq 0 ] && echo -e "Add Time OK !\n"
27             shift 2
28             [[ -z $@ ]] && exit 0
29             ;;
30             -d|--description)
31             sed -i "/[Dd]escription/d" $filename
32             sed -i "5c# Description:${meg}" $filename
33             [ $? -eq 0 ] && echo -e "Add Description OK !\n"
34             shift 2
35             [[ -z $@ ]] && exit 0
36             ;;
37             -v|--version)
38             sed -i "/[Vv]ersion/d" $filename
39             sed -i "4c# Version: ${meg}" $filename
40             [ $? -eq 0 ] && echo -e "Add Version OK !\n"
41             shift 2
42             [[ -z $@ ]] && exit 0
43             ;;
44             -h|--help)
45             cat << EOF
46 Usage: scriptname [-a|--author USER] [-t|--time DATE] [-d|--descript MESSAGE] [-v|--version DIGIT] [-h|--help]"
47 EOF
48             exit 1
49             ;;
50             *) # 以上参数外的参数执行此处代码
51             cat << EOF
52 Usage: scriptname [-a|--author USER] [-t|--time DATE] [-d|--descript MESSAGE] [-v|--version DIGIT] [-h|--help]"
53 EOF
54             exit 2
55             ;;
56         esac
57 done
58 }
59
60 function sai() { # sai函数声明
61     if [ ! -s $filename ]
62     then
63         shift #将$1切掉,后面只处理其他位置参数
64         echo -e '#!/bin/bash\n\n\n\n' > $filename
65         option $@  #调用option函数,将剩余位置参数传递给option
73     else
66     elif [ -f $filename ]
67     then
68         shift #将$1切掉,后面只处理其他位置参数
69         read -p "The file no empty ! Whether to continue?(Y/N):" YN
70         [[ $YN =~ [Yy] ]] || exit 1
71         sed -i 's@^#!.*$@#!/bin/bash@g' $filename #更新shabang
72         option $@ #调用option函数,将剩余位置参数传递给option
73     else
74         echo "ERROR !"
75     fi
76 }
77
78 sai "$@" #调用sai函数,将位置参数传递给sai
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: