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

这篇博客介绍了如何编写一个简单的Shell脚本,旨在通过函数和循环结构来处理用户输入。虽然当前脚本仍处于练习阶段且包含冗余代码,但作者指出,一旦完善,可以在系统/bin目录下创建脚本的快捷方式,以便快速调用执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此脚本只是练习(存在冗余代码)函数使用方法、判断及循环。如完善代码后可在/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值