bash条件判断之if语句(二)

练习19:写一个脚本:可以接受一个参数,其使用形式如下:
script.sh {start|stop|restart|status}
如果参数为start,创建空文件/var/lock/subsys/script,并显示“Starting script successfully.”;
如果参数为stop,则删除文件/var/lock/subsys/script,并显示“Stop script finished.”;
如果参数为restart,则删除文件/var/lock/subsys/script后重新创建,并显示“Restarting script successfully.”;
如果参数为status,那么:
    如果/var/lock/subsys/script文件存在,则显示为“script is running.”
    否则,则显示为“script is stopped.”
其它任何参数:则显示“script.sh {start|stop|restart|status}”

#!/bin/bash
# Date: 2015-04-06
# Author: ArvinLau
# Description: 
# Version: 1.0
FileName=`basename $0`
FilePath="/var/lock/subsys/$FileName"    #变量替换,使用双引号
if [ $# -lt 1 ]; then
    echo "Usage:$0 {start | restart | stop | status}"
    exit 5
fi
if [ $1 == start ]; then
    touch $FilePath
    echo "Starting $FileName successfully."
elif [ $1 == stop ]; then
    rm -f $FilePath
    echo "Stop script finished."
elif [ $1 == restart ]; then
    rm -f $FilePath
    touch $FilePath
    echo "Restarting script successfully."
elif [ $1 == status ]; then
    if [ -e $FilePath ]; then
        echo "Script is running."
    elif [ ! -e $FilePath ]; then
        echo "Script is stopped."
    fi
else
    echo "Usage:$0 {start | restart | stop | status}"
    exit 7
fi

#虽然目前知识所写的脚本,功能简单,但可以尽可能的针对实际情况进行完善,下面这个脚本,就文件是否存在进行判断,补充脚本的不足。

#!/bin/bash
# Date: 2015-04-06
# Author: ArvinLau
# Description: 
# Version: 1.0
FileName=`basename $0`
FilePath="/var/lock/subsys/$FileName"    #变量替换,使用双引号
if [ $# -lt 1 ]; then
    echo "Usage:$0 {start | restart | stop | status}"
    exit 5
fi
if [ $1 == start ]; then
    if [ -e $FilePath ]; then    #判断文件是否存在
        echo "$FilePath is running."
    else
        touch $FilePath
        echo "Starting $FileName successfully."
    fi
elif [ $1 == stop ]; then
    if [ -e $FilePath ]; then    #判断文件是否存在
        rm -f $FilePath
        echo "Stop script finished."
    else
        echo "$FilePath is stopped."
    fi
elif [ $1 == restart ]; then
    if [ ! -e $FilePath ]; then    #如果文件不存在
        echo "$FilePath is stopped."
    else
        rm -f $FilePath
        touch $FilePath
        echo "Restarting script successfully."
    fi
elif [ $1 == status ]; then
    if [ -e $FilePath ]; then
        echo "Script is running."
    elif [ ! -e $FilePath ]; then
        echo "Script is stopped."
    fi
else
    echo "Usage:$0 {start | restart | stop | status}"
    exit 7
fi

以上的脚本就是sysv风格的服务脚本

Redhat系列可以用以下方式执行这些服务脚本

# service network start

# /etc/rc.d/init.d/network start

# /etc/init.d/network start

时间: 2024-12-19 18:11:21

bash条件判断之if语句(二)的相关文章

hell脚本编写 之 条件选择,条件判断,循环语句

1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐条件进行判断,第一次遇为"真"条件时,执行其分支,而后结束整个if语句 if是根据判读条件的命令的退出状态来执行命令,if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分

Linux shell的条件判断、循环语句及实例

shell条件判断的两个特殊设备 /dev/null linux系统的空设备,也称为位桶,任何写入其中的数据均会被丢弃当你不想将标准化输出显示或者保存至文件时可以将文件从定向到/dev/null 禁止标准化输出 cat $filename > /dev/null 禁止标准化错误 rm $filename > /dev/null /dev/zero Linux的输入设备,可以用他初始化文件,可以无限制输出0, 另一个作用是用0去填充一个指定大小的文件 在条件判断语句中&&表示an

L7.1 linux shell 条件判断与循环语句

bash脚本条件判断语句详细使用 条件判断的使用方法及其相关示例: 本文对bash中test语句,if判断语句(单分支,多分支)case语句详细说明,如下 条件测试:test 作用:Shell中的test命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. test使用语法 test EXPRESSION 也可以使用 :[ EXPRESSION ]:[[ EXPRESSION ]] 整数测试: 隐含着做数值大小比较,所以不要给变量引用加引用: $A -gt $B:是否大于:是

Bash条件判断

bash编程之:条件判断,判定后续操作的前提条件是否满足, bash编程之: 条件判断常用类型: 整数测试:比较两个整数谁大谁小,是否相等: 二元测试: num1 操作符 num2 -eq: 等于 -ne: 不等于 -le:小于等于 -ge:大于等于 -lt:小于 -gt: 大于 字符测试:比较两个字符串是否相等: 双目录 >:          大于 <:          小于 ==:             等于,等值比较 =~:             左侧是字符串,右侧是一个模式,判

条件判断之if语句

if语句 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试.Python根据条件测试的值为True还是False来决定是否执行if语句中的代码.如果条件测试的值为True,Python就执行紧跟在if语句后面的代码:如果为False,就忽略这些代码. age = 18 if age == 18: print ('hello world') >>>hello world #如果age不等于18,将没有任何输出.在if语句中,缩进的作用与for循环中相同.

python if条件判断及while语句实例

python if 实例: if实例: user_id = input("请输入用户名:") user_pass = input("请输入密码:") if user_id == "root": if user_pass =="1234": print("登录成功") else: print("密码输入不对") else: print("用户名输入不对") print(

bash脚本编程之条件判断、条件测试

脚本编程: 编程面向过程有如下几种执行方式 顺序执行 选择执行:  如 if, case 循环执行:  如 for, while, until bash的变量类型: 本地变量 set VAR_NAME=value 设置变量赋值 如: set User=Centos unset VAR_NAME 撤消变量赋值 如: unset User=Centos ${VAR_NAME} 作用范围:当前shell进程: 局部变量 local VAR_NAME=value 设置变量赋值 unset VAR_NAM

Python的条件判断语句------if/else语句

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户的年龄,根据年龄打印不同的内容... Python程序中,能让计算机自己作出判断的语句就是if语句: 例: age = 25 if age >= 18: print "your age is %d, you are a adult." % age 根据python的缩进规则,如果if语句的条件判断为True,就执行缩进的内容,即print执行,否则,什么也不会做. 当然,也可以给if添加一个else语句,

shell编程 条件判断式----利用 if .... then ----多重

条件判断式----利用 if .... then ----多重 在同一个数据的判断中,如果该数据需要进行多种不同的判断时,应该怎么作?举例来说,上面的 sh06.sh 脚本中,我们只要进行一次 $yn 的判断就好 (仅进行一次 if ),不想要作多次 if 的判断. 此时你就得要知道底下的语法了: # 一个条件判断,分成功进行与失败进行 (else) if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的指令工作内容: else 当条件判断式不成立时,可以进行的指令工作内容: fi