根据输入选项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
相关文章推荐
- shell脚本中用getopts处理用户输入选项和参数
- shell脚本添加选项菜单demo
- Shell脚本中判断输入参数个数的方法 ,包括默认的$0,$1,-d ,-eq -n -z 等逻辑判断选项
- 为C++代码批量添加版权信息的shell脚本
- 用来检测输入的选项$1是否在PATH中的shell脚本
- Shell脚本的调试选项
- 根据输入的选项显示行号:
- shell脚本:批量添加文件后缀名
- shell脚本判断输入参数个数
- shell脚本中把过滤出来的信息用数组来存储
- shell添加用户脚本
- 常用shell脚本命令总结(添加中。。。)
- 工作中编写shell脚本设计到相关信息
- shell脚本解压文件与选择选项
- shell脚本屏蔽错误输出信息
- shell脚本自动修改IP信息
- 【信息采集】IBM AIX系统硬件信息查看命令(shell脚本)
- linux下显示网卡设备及驱动信息intel shell脚本
- LINUX下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果
- SHELL脚本的基础知识4——处理用户输入