举栗子说明:
编写nginx启动脚本:
#!/bin/bash #表示当前脚本由/bin/bash这个程序来执行 # chkconfig: 35 80 30 #系统服务的运行级 # description: Nginx Server NGINXD='/usr/local/nginx/sbin/nginx' #nginx运行文件 LOCKFILE='/var/lock/nginx.lock' #nginx的锁文件 PIDFILE='/var/run/nginx/nginx.pid' #nginx的pid文件 ./etc/init.d/functions #提供基础功能 function start(){ [ -e $LOCKFILE ] && echo "nginxd is running ......" && exit #[和]都要有空格,否则报错 -e表示是否存在 echo -n "nginxd is starting ......" #-n不换行输出 sleep 1 $NGINXD [ $? -eq 0 ] && touch $LOCKFILE && echo -e "\033[32m [ok] \033[0m" || echo -e "\033[31m [fail] \033[0m"
#$?表示最后运行代码的返回值
#-eq是否相等
#touch表示将文件的访问时间和修改时间改为当前时间
#echo -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;#echo -e "\033[32m [ok] \033[0m"其中32的位置是代表字的颜色
那些ascii code 是对颜色调用的始末.
\033[ ; m …… \033[0m
字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
===============================================ANSI控制码的说明
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m -- \33[37m 设置前景色
\33[40m -- \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标 } function stop(){ echo -n "nginxd is stoping......" sleep 1 kill -INT `cat $PIDFILE` #关闭nginx进程 [ $? -eq 0 ] && rm -rf $LOCKFILE && echo -e "\033[32m [ok] \033[0m" || echo -e "\033[31m [fail] \033[0m" } function status(){ [ -e $LOCKFILE ]&& echo "nginxd is running ......" || echo "nginxd is stoped" } case $1 in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo "nginxd Usage: {start|stop|restart}" ;; esac#取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。case开始,esac结束