免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1042 | 回复: 0
打印 上一主题 下一主题

[学习分享] shell脚本问题!!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-20 17:11 |只看该作者 |倒序浏览

写个脚本,按如下方式执行:
mkscript.sh -v|--version VERSION -a|--author AUTHOR -t|--time DATETIME -d|--description DESCRIPTION -f|--file /PATH/TO/FILE -h|--help

1、此脚本能创建或打开-f选项指向的文件/PATH/TO/FILE;如果其为空文件,能自动为其生成第一行;如果文件不空,且第一行不是#!/bin/bash,则中止此脚本,
并报错“The file is not a bash script.";否则,则直接使用vim 打开此文件;
提示:/PATH/TO/FILE,要判断其目录是否存在;如果不存在,则报错;

2、如果为空文件,自动生成的第一行内容为:
#!/bin/bash
3、如果为空文件,且使用了-a选项,则在文件中添加“# Author: -a选项的参数”,比如:
# Author: Jerry
4、如果为空文件,且使用了-t选项,则在文件中添加“# Date: 脚本执行-t选项后指定的时间”,比如:
# Date: 2013-03-08 18:05
5、如果为空文件,且使用了-d选项,则在文件中添加“# Description: -d选项的内容”,比如:
# Description: Create a bash script file head.
6、如果为空文件,且使用了-v选项,则在文件添加“# Version: -v后跟的参数”,比如:
# Version: 0.1
6、-h选项只能单独使用,用于显示使用帮助;
7、其它选项,显示帮助信息;

说明:
这是一个用于创建脚本的脚本,它可以自动帮助创建一个bash脚本的文件头,这样,以后使用此脚本来创建其它脚本将变得比较高效。比如:
#!/bin/bash
# Author: Jerry(jerry@magedu.com)
# Date: 2013-03-08 18:05
# Description: Create a bash script file head.
# Version: 0.1
#

请问这个脚本如何写
#!/bin/bash
#
declare -i createfile=0
declare -i Author=0
declare -i Date=0
declare -i version=0
declare -i Description=0
for i in `seq 1 $#`;do
if [ $# -gt 0 ];then
case $i in
-f|--file)
createfile=1
shift
;;
-d|--description)
Description=1
shift
;;
-t|--time)
Date=1
shift
;;
-a|--author)
Author=1
shift
;;
-v|--version)
version=1
shift
;;
-h)
echo "usage:`basename $0` {-v|--version,-a|--author,-t|--time,-d|--description,-f|--file /PATH/TO/FILE,-h|--help}"
exit 0
;;
*)
echo "usage:`basename $0` {-v|--version,-a|--author,-t|--time,-d|--description,-f|--file /PATH/TO/FILE,-h|--help}"
exit 9
;;
esac
fi
done


if [ createfile == 1 ];then
[ -e $1 ]||[ -z $1 ] && touch $1
echo "#!/bin/bash" > $1
fi

if [ Author == 1 ];then
echo "# Author: Jerry" >> $1
fi

if [ Date == 1 ];then
echo "date:"date +%F-%T >> $1
fi

if [ version == 1 ];then
echo "# Version: 0.1" >> $1
fi

if [ version == 1 ];then
echo "# Version: 0.1" >> $1
fi

if [ Description == 1 ];then
echo "# Description: Create a bash script file head." >> $1
fi
以上是我写的,有很大的问题,请高手指正
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP