- 论坛徽章:
- 0
|
写个脚本,按如下方式执行:
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
以上是我写的,有很大的问题,请高手指正 |
|