精华内容
下载资源
问答
  • shell流程控制之双分支if语句

    千次阅读 2019-07-01 17:24:32
    条件不成立时,执行语句 fi 2.练习3:判断输入的是否是一个目录 [root@catyuan ~]# vim if3.sh #!/bin/bash read -t 30 -p "Please input dir:" dir #使用read命令创建一个键盘录入,等待30s,变量为dir if [ -d...

    1.格式

    if [ 条件判断式 ];then
    	条件成立时,执行的程序
    	else
    	条件不成立时,执行的语句
    fi
    

    2.练习3:判断输入的是否是一个目录

    [root@catyuan ~]# vim if3.sh
    #!/bin/bash
    read -t 30 -p "Please input dir:" dir	#使用read命令创建一个键盘录入,等待30s,变量为dir
    if [ -d "$dir" ];then		#判断输入的内容是否为目录
                    echo "it is dir"		#是目录的话输出这句话
            else
                    echo "it is not dir"	#不是目录的话输出这句话
    fi
    [root@catyuan ~]# chmod 755 if3.sh 
    [root@catyuan ~]# ./if3.sh 
    Please input dir:/
    it is dir
    [root@catyuan ~]# ./if3.sh 
    Please input dir:d
    it is not dir
    

    3.练习4:判断Apache服务是否启动

    思路:
    [root@catyuan ~]# ps aux | grep httpd
    root      12603  0.0  0.0 112660   968 pts/1    R+   08:51   0:00 grep --color=auto httpd
    [root@catyuan ~]# ps aux | grep httpd | grep -v grep
    [root@catyuan ~]# systemctl start httpd
    [root@catyuan ~]# ps aux | grep httpd | grep -v grep	#取反,去掉有grep的那行
    root      12622  0.4  0.2 226240  5116 ?        Ss   08:52   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    12631  0.0  0.1 228324  3148 ?        S    08:53   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    12632  0.0  0.1 228324  3148 ?        S    08:53   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    12633  0.0  0.1 228324  3148 ?        S    08:53   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    12634  0.0  0.1 228324  3148 ?        S    08:53   0:00 /usr/sbin/httpd -DFOREGROUND
    apache    12635  0.0  0.1 228324  3148 ?        S    08:53   0:00 /usr/sbin/httpd -DFOREGROUND
    
    编写脚本
    [root@catyuan ~]# systemctl stop httpd
    [root@catyuan ~]# vim if4.sh 
    #!/bin/bash
    test=$(ps aux | grep httpd | grep -v grep)      #截取httpd进程,并把结果赋予变量test
    if [ -n "$test" ];then  #如果test的值不为空,则执行then后的语句
                    echo  "$(date) httpd is ok" >> /tmp/autostart-acc.log	#将httpd is ok这句话及日期写入正确日志文件中 
                      echo "apache is ok"
            else
            	   echo "apache is not ok"
                   systemctl start httpd &> /dev/null	#Apache的标准启动命令,并且将这条命令的结果丢入黑洞文件/dev/null,不在屏幕显示
                   echo "$(date) restart httpd" >> /tmp/autostart-err.log	#将重启httpd这句话及日期写入错误文件中
                    
    fi
    [root@catyuan ~]# chmod 755 if4.sh 
    [root@catyuan ~]# ./if4.sh 
    apache is not ok
    [root@catyuan ~]# vi /tmp/sutostart-err.log	#之前关闭了Apache服务,所以写入错误日志文件并重启,此时的正确日志文件没有内容
    Tue Jul  2 01:09:34 CST 2019 restart httpd
    [root@catyuan ~]# ./if4.sh 
    apache is ok
    [root@catyuan ~]# vim  /tmp/autostart-acc.log
    Tue Jul  2 01:12:55 CST 2019 httpd is ok	#再次执行脚本,由于之前已经重启服务,所以写入正确日志文件
    
    注意:这个脚本的文件名不能出现包含有httpd,否则会出错。无论Apache服务是否正常,都会显示apache is ok。也可以通过检测端口来判断Apache服务
    
    展开全文
  • if双分支简单案例 例1:测试主机存活性,并说明存活状态 #!/bin/bash #date 2020-2-24 #描述:测试主机存活状态 read -p "请输入一个ip:" ip ping -c 1 $ip &>/dev/null if [ $? -eq 0 ] then echo "ip主机...

    if

    if双分支执行流程,首先对if后面的条件进行判断,若条件成立,则执行then后面的命令序列,执行完后转到fi结束。若条件不成立,则执行else后面的命令序列,然后转到fi结束,继续执行后续命令。

    语法


    if [ 条件判断 ]
    then
    commands
    else
    commands
    fi


    if双分支简单案例

    例1:测试主机存活性,并说明存活状态

    #!/bin/bash
    #date   2020-2-24
    #描述:测试主机存活状态
    read -p "请输入一个ip:" ip
    ping -c 1 $ip   &>/dev/null
    if [ $? -eq 0 ]
    then
            echo    "ip主机存活"
    else
            echo    "ip主机未存活,请尽快查看主机情况"
    fi
    

    执行结果:

    [root@linus ~]# sh 4.sh 
    请输入一个ip:192.168.1.123
    ip主机存活
    

    例2:测试服务运行状况,并说明运行状态

    #!/bin/bash
    #date   2020-2-24
    #描述:测试httpd服务状态
    yum     install -y httpd        &>/dev/null
    systemctl       start httpd     &>/dev/null
    netstat -anpt | grep httpd      &>/dev/null
    if      [ $? -eq 0 ]
    then
            echo    "httpd已经运行"
    else
            echo    "httpd没有运行,应该是服务错误或者没有安装
    ,请尽快查看"
    fi
    

    执行结果:

    [root@linus ~]# sh 5.sh 
    httpd已经运行
    

    例3:判断指定的某个用户是否存在,若存在则显示提示信息并跳过,否则就创建。

    #!/bin/bash
    #date   2020-2-24
    #描述:判断指定用户是否存在,不存在则创建
    read -p "请输入用户名:" name
    read -p "请输入用户密码:" passwd
    cut -d: -f1 /etc/passwd | grep "\<$name\>" &>/dev/null
    if [ $? -eq 0 ]
    then
            echo    "用户$name已存在,不再创建"
    else
            echo    "用户$name不存在,正在创建"
            useradd $name &>/dev/null
            echo "$name:$passwd" | chpasswd &>/dev/null
            if      [ $? -eq 0 ]
                    then
                            echo    "用户$name密码创建成功"
                    else
                            echo    "用户$name密码创建失败"
            fi
    fi
    

    执行结果:

    [root@linus ~]# sh 7.sh 
    请输入用户名:create
    请输入用户密码:123.com
    用户create不存在,正在创建
    用户create密码创建成功
    

    例4:每5分钟监控一次mysql服务运行状态,把服务错误信息写入到/var/log/mysql.log文件中。

    #!/bin/bash
    #date   2020-2-24
    #描述:每五分钟监控一次mysql运行状态,并把错误信息写入日
    志
    pgrep -x mysqld &>/dev/null
    if [ $? -ne 0 ]
    then
            echo "$(date),mysql服务已宕机" >> /var/log/mysql.log
    else
            echo "mysql正在运行"
    fi
    echo "5 * * * * sh /root/8.sh" >>/var/spool/cron/root
    

    执行结果:

    [root@linus ~]# sh 8.sh 
    [root@linus ~]# cat /var/log/mysql.log 
    20200225日 星期二 01:29:07 CST,mysql服务已宕机
    
    展开全文
  • 对于 if-else 语句,它是 单条件双分支语句,即程序的执行流程是根据 一个条件来控制的; 如下代码演示了存在多个 if - else 时的执行顺序: int test11 = 2; if (test11 > 1) { // if语句判断 int test...

    在Java中多个 if-else 之间的执行顺序有什么区别呢?

    对于 if-else 语句,它是 单条件双分支语句,即程序的执行流程是根据 一个条件来控制的;

    如下代码演示了存在多个 if - else 时的执行顺序:

                    int test11 = 2;
    		if (test11 > 1) {    // if语句判断
    			int test21 = 10;
    			test11 = test21;
    			System.out.println(test11); // if表达式的值为true,则输出test1为10
    		}else{
    			int test31 = 100;
    			test11 = test31;
    			System.out.println(test11); // if表达式的值为false,则输出test1为100
    		}
    		if (test11 < 1) {    // if语句判断
    			int test21 = 10;
    			test11 = test21;
    			System.out.println(test11); // if表达式的值为true,则输出test1为10
    		}else{
    			int test31 = 100;
    			test11 = test31;
    			System.out.println(test11); // if表达式的值为false,则输出test1为100
    		}

    一、在代码中,存在两个 if-else 语句 ,程序执行时他们相互之间是独立的,互不干扰的;

    二、这两个 if - else 执行顺序为:

    1、先执行第一个 if - else 语句中的 if ( test11 > 1 ) ,当表达式 test11 > 1 为 true 时,则执行其 { } 里面的若干语句,在这里是执行三条语句;当执行完 { } 中的三条语句后,就结束第一个 if - else 语句了 , else {} 部分是不会再执行了,即:

    else{
                int test31 = 100;
                test11 = test31;
                System.out.println(test11); // if表达式的值为false,则输出test1为100
            }

     是不再执行的;反之,当表达式 test11 > 1 为 false 时 ,则不会执行其 { } 里面的三条语句 ,而是执行 else 后面的 { } 中三条语句 ,执行完三条语句后,就结束第一个 if - else 语句了 ;

    2、当第一个 if - else 结束后,执行顺序就到 第二个 if - else 语句,和第一个 if - else 一样,先判断语句 if (test11 < 1) 中表达式的值,当表达式 test11 < 1 为 true 时,则执行其 { } 里面的若干语句,并结束第二个 if - else 语句 ,否则执行 else 后面的 { } 中的语句,并结束第二个 if - else 语句;

    3、以上代码演示最终输出为:10  100 ;

    4、if - else 总结:对于 if - else 语句 就是 ,先判断表达式的值,为true则执行其 { } 中若干语句,并结束语句,为false则执行其 else 后面的 { }中的语句,并结束语句;

    再次强调:

    对于 多个 if - else 语句,程序执行时是从第一个 if - else 开始判断的,只有当执行完第一个 if - else ,程序才会继续往下执行第二个,第三个,第四个 if - else 语句,而且每个 if - else 语句之间是独立的,互不干扰的,你执行你的 if - else ,我执行我的 if - else ;


    在Java中 if-else 与 if-else if-else之间不同执行顺序:

    一、首先要了解 if - else 与 if - else if - else 之间的本质是不一样的:

    1、if - else 是 单条件双分支 语句; if - else if - else  是 多条件分支 语句 ;

    if - else 单条件双分支 语句是:

    一个条件控制两个分支语句执行顺序,当条件为 true 则执行其对应的一个分支语句,而另外一个分支就不再执行了,当条件为 false 则执行其对应的一个分支语句,而另外一个分支也不会再执行了;

    if - else if - else 多条件分支 语句是:

    • 语句中有多个条件,每一个条件控制自己一个分支语句,语句执行时,先从第一个 if ( ) 中的表达式开始判断,当表达式中值为 true 则执行该 { } 中若干语句,并结束当前整个 if - else if - else ,也就是后面的 else if - else 都不会再继续判断和执行了;
    • 当第一个 if ( ) 中的表达式的值为false时,则往下对 else if 进行判断,一直到多个条件中有表达式的值为true,才结束语句;
    • 若多个条件都为false时,则执行最后 else 后面 { } 中的若干语句,并结束当前整个 if - else if - else ;
    • 如下代码进行演示:
    • 代码中每个 if () 中表达式的值都是 false ,所以最后只执行 else {} 中的若干语句,并结束当前语句,程序输出为 100000 ;
                    int test1 = 10 ;
    		if(test1<1){
    			test1 = 100;
    			System.out.println(test1);  // 当表达式 test<1 为true,则输出 test1 的值为100
    		}else if(test1<2){
    			test1 = 1000;
    			System.out.println(test1);  // 当表达式 test<2 为true,则输出 test1 的值为 1000
    		}else{
    			test1 = 100000;
    			System.out.println(test1);  
    // 当以上表达式都为false时,则输出 test1 的值为 100000,并结束该if-else if-else语句
    		}

    那么 if-else 与 if-else if-else之间不同执行顺序是:

    • 对于 if - else 语句,系统程序只会进行一次表达式的判断,当表达式的值为 true 则执行其 { } 中的若干语句,并结束当前整个语句,后面的 else 不再执行了;若表达式的值为 false 则执行其 else { } 中的若干语句,并结束当前整个语句;
    • 对于 if - else if - else 语句,系统程序会进行多次表达式的判断,直到其中有一个表达式的值为 true ,才会执行其对应的若干语句,并结束当前整个语句;若全部表达式的值都为 false 时,则执行其最后 else { } 中的若干语句,并结束当前整个语句;

    需要注意的是:有多个 else if 语句的情况下,如 if - else if - else if - else if - else :

    要是 if 中表达式为  false ,下面三个 else if 的表达式的值都是 true 那要怎么执行呢?

    其实很简单,当 三个 else if 的表达式的值都是 true 时,系统程序只会执行第一个 else if 中表达式的值为true的若干语句,并结束当前整个语句,而后面两个 else if 是不会被执行的; 如下代码进行演示:

                    int test1 = 10 ;
    		if(test1<1){
    			test1 = 100;
    			System.out.println(test1);  // 当表达式 test<1 为true,则输出 test1 的值为100
    		}else if(test1>2){
    			test1 = 1000;
    			System.out.println(test1);  // 当表达式 test<2 为true,则输出 test1 的值为 1000
    		}else if(test1>3){
    			test1 = 10000;
    			System.out.println(test1);  // 当表达式 test<3 为true,则输出 test1 的值为 10000
    		}else if(test1>4){
    			test1 = 100000;
    			System.out.println(test1);  // 当表达式 test<3 为true,则输出 test1 的值为 100000
    		}else{
    			test1 = 0;
    			System.out.println(0);  // 当以上表达式都为false时,则输出 test1 的值为 0,并结束当前整个语句
    		}

    在代码中,test1 > 2 , test1 > 3 , test1 > 4 都是为true的,但是程序只会执行第一个表达式 test1 > 2 的若干语句,并结束整个语句了,后面的 test1 > 3 , test1 > 4 都不会在判断和执行了;


    以下单独对 if 语句、if else语句、if - else if - else 语句、switch开关语句进行逐一分析:

    一、if语句是单条件单分支语句,根据一个条件来控制程序执行的流程;

    1、if语句的语法格式:

    if(表达式){
      若干语句
    }

    2、if语句中表达式的值必须是boolean类型的,当值为 true 时,则执行 {} 中的 若干语句 ;当值为 false 时则结束当前 if 语句;

    以下代码进行演示: 表达式 test>1 为真,所以执行 {} 中的三条语句,最后结果输出 100 ;

                    int test = 10 ;
    		if(test>1){                  //if语句判断
    			int tests = 100 ; 
    			test = tests ;
    			System.out.println(test);    //输出test为100
    		}

    3、if语句中,当 {} 中的语句只有一条时,可以省略 {} , 但是为了增强代码的可读性,建议大家不要省略;如下演示:

            int test = 10 , tests = 100 ;                
            if(test>1){
    	   System.out.println(test);  // test>1为真,输出test
    	}
            if(tests<1)
               tests = test ;
    	System.out.println(tests); // tests<1为假,则不进行tests = test ;语句,输出tests为100

    二、if-else语句是单条件双分支语句,与if语句一样根据一个条件来控制程序执行的流程;

    1、if-else语句的语法格式:

    if(表达式){
      若干语句
    }else{
      若干语句
    }

    2、if-else语句中表达式的值必须是boolean类型的,当值为 true 时,则执行紧跟 () 后面的 {} 中的若干语句 ;当值为 false 时则执行紧跟 关键字else 后面的 {} 中的若干语句 ;

    以下代码进行演示: 表达式 test > 1 为真,所以执行紧跟 () 后面的 {} 中的语句,最后结果输出 10 ;

                    int test1 = 2;
    		if (test1 > 1) {    // if语句判断
    			int test2 = 10;
    			test1 = test2;
    			System.out.println(test1); // if表达式的值为true,则输出test1为10
    		}else{
    			int test3 = 100;
    			test1 = test3;
    			System.out.println(test1); // if表达式的值为false,则输出test1为100
    		} 

    3、if-else语句中,当 {} 中的语句只有一条时,可以省略 {} , 但是为了增强代码的可读性,建议大家不要省略;如下演示:

            int test1 = 2;
    	if (test1 > 1)     // if语句判断
    	    test1 = 10;    // if表达式的值为true,则输出test1为10
    	else
    	    test1 = 100;   // if表达式的值为false,则输出test1为100
    	System.out.println(test1); // 此输出语句,不属于上面的 if-else 语句当中 ; 用于输出test1的值

    特别注意:以下代码是错误的,报错:Syntax error on token "else", delete this token

            int test1 = 2;
    	if (test1 > 1)     // if语句判断
    	    test1 = 10;
    	    System.out.println(test1); // if表达式的值为true,则输出test1为10
    	else
    	    test1 = 100;
    	    System.out.println(test1); // 此输出语句,不属于上面的 if-else 语句当中 ; 用于输出test1的值

    因为:该 if-else 语句中,紧跟 () 后面的语句已经不止一条了,所以程序报错,对于else后面的 方法调用语句 System.out.println(test1) ;  是不属于该 if-else 语句中的,程序通过;

    解决:去掉 test1 = 10 ; 或者 方法调用语句 System.out.println(test1) ;  即可

    三、if - else if - else 语句是多条件分支语句,即多个条件来控制程序执行的流程;

    1、if - else if - else 语句的语法格式:

    if(表达式){
      若干语句
    }else if(表达式){
      若干语句
    }else if(表达式){
      若干语句
    }
    .
    .
    .
    else{
      若干语句
    }
    
    

    2、if - else if - else 语句中每个 if 后面中表达式的值必须是boolean类型的,当值为 true 时,则执行紧跟该if的 () 后面的 {} 中的若干语句 ;当值为 false 时则继续判断下一个 else if 的 () 中表达式的值,以此类推,直到结束该  if - else if - else 语句 ;

    以下代码进行演示: 当每个if后面的表达式都为 false 时,则执行最后 else 中的若干语句,最后输出test1为 100000 ;

                    int test1 = 10 ;
    		if(test1<1){
    			test1 = 100;
    			System.out.println(test1);  // 当表达式 test<1 为true,则输出 test1 的值为 100
    		}else if(test1<2){
    			test1 = 1000;
    			System.out.println(test1);  // 当表达式 test<2 为true,则输出 test1 的值为 1000
    		}else if(test1<3){
    			test1 = 10000;
    			System.out.println(test1);  // 当表达式 test<3 为true,则输出 test1 的值为 10000
    		}else{
    			test1 = 100000;
    			System.out.println(test1);  
    // 当以上表达式都为false时,则输出 test1 的值为 100000,并结束该if-else if-else语句
    		}

    3、if - else if - else 语句中,当每个 if 后面 {} 中的语句只有一条时,可以省略 {} , 但是为了增强代码的可读性,建议大家不要省略;和以上 if 语句、if - else 语句 是一样的;

    4、需要注意的是,对于 if - else if - else 语句中没有最后的 else 且 每个if 后面的表达式都为 false 时,则结束当前的 if - else if - else 语句;

    、switch 开关语句是单条件多分支语句;

    1、switch 语句的语法格式:其中 break 是可选的,用于结束当前 switch 开关语句;

    switch(表达式){
      case 常量值1: 若干语句 break;
      case 常量值2: 若干语句 break;
      case 常量值3: 若干语句 break;
      ...
      case 常量值n: 若干语句 break;
      default:
             若干语句
    }

    2、switch 语句的执行流程:

    • switch首先判断表达式的值,要是表达式中的值 与 case 后面的常量值相等,就执行该 case 里的若干语句直到遇见break语句为止;
    • 若执行该 case 里的若干语句没有break语句时,则程序不止执行该 case 里的若干语句,还会继续执行后继的 case 里的若干语句,直到遇见 break 语句 ;
    • 若 switch 语句中 表达式的值 与 属于 case 后面的常量值都不相等,则执行 default 后面的若干语句 ;其中 default 是可以不要的;
    • 若 switch 语句中 表达式的值 与 属于 case 后面的常量值都不相等,并且没有 default 时,该 switch 语句不执行任何操作;
    • 如下演示:因为 case 1: 后面没有 break 语句,所以会继续执行后继的 case 里的若干语句,直到遇见break语句,结果输出为 1 2 11 ;
                    int test = 1 ;
    		switch(test){
    		 case 1: test = 1 ;System.out.println(test); 
    		 case 2: test = 2 ;System.out.println(test); 
    		 case 11: test = 11 ;System.out.println(test); break;
                     case 12: test = 12 ;System.out.println(test); 
    		 default: test = 0 ;
    		}

    3、switch 语句中 () 里 “ 表达式 ” 的值可以是byte、short、int、char类型的值;如下演示:

                    int test = 11 ;
    		double testd = 100 ;
    		switch(test){
    		 case 1: test = 1 ;System.out.println(test); break; 
    		 case 2: test = 2 ;System.out.println(test); break; 
    		 case 11: test = 11 ;System.out.println(test); break; 
    		 default: test = 0 ;
    		}

    需要注意的是,switch 中 () 里 “ 表达式 ” 的值不可以是 long、float、double 类型的值,否则报错:

    Cannot switch on a value of type double. Only convertible int values, strings or enum variables are permitted

    4、switch 语句中 case 常量值: 中常量值也可以是byte、short、int、char类型的值,而且是互不相同的;如下演示:

                    int test = 1 ;
    		switch(test){
    		 case 1: test = 1 ;System.out.println(test); 
    		 case 2: test = 2 ;System.out.println(test); 
    		 case 'a': test = 11 ;System.out.println(test); break; 
    		 case (byte)10: test = 12 ;System.out.println(test); 
    		 default: test = 0 ;
    		}

    总结 if、if-else、if-else if-else语句 与 switch 开关语句 之间的异同点:

    1、if、if-else、if- else if- else 语句 之间的共同点是程序根据 一个条件执行一个分支操作,而不是选择执行多个分支操作;

    2、与上面 if、if-else、if- else if- else 语句 不同的是, 在switch语句中,可以通过合理地使用 break 语句,达到一个条件执行一个分支的操作(即只执行一个case后面的若干语句),也可以达到多个操作的操作(即执行多个case后面的若干语句,如以上第2点的代码演示);

    代码练习: 使用switch语句实现 判断用户从键盘输入一个整数是否为中奖号码;

          System.out.println("请输入一个整数进行抽奖,并按回车键(Enter)结束输入:");
    		Scanner inputs = new Scanner(System.in);
    		int number = inputs.nextInt();
    		switch(number){
    		 case 11: System.out.println("恭喜中特等奖!中奖号码为:"+number);break;
    		 case 12: 
    		 case 13: System.out.println("恭喜中一等奖!中奖号码为:"+number);break;
    		 case 14:
    		 case 15:
    		 case 19: System.out.println("恭喜中二等奖!中奖号码为:"+number);break;
    		 case 22:
                     case 23:
                     case 24:
    		 case 25: System.out.println("恭喜中三等奖!中奖号码为:"+number);break;
    		 default: System.out.println("很遗憾"+number+"没有中奖");
    		}

    其中:特等奖为一名,一等奖为两名,二等奖为三名,三等奖为四名;

     

     

     

    展开全文
  • shell双分支if语句

    千次阅读 2017-11-22 12:07:12
    if [条件判断式] then 条件成立时,执行的程序 else 条件不成立,执行的程序 fi   二 判断输入是否是目录 #!/bin/bash rate=$(df -h|grep "/dev/sda3"|awk '{print $5}'|cut -d "%" -f1) if [ $rate -le ...
    一 语法
    if [条件判断式]
    then
    条件成立时,执行的程序
    else
    条件不成立,执行的程序
    fi
     
    二 判断输入是否是目录
    #!/bin/bash
    rate=$(df -h|grep "/dev/sda3"|awk '{print $5}'|cut -d "%" -f1)
    if [ $rate -le 80 ]
    then
    echo "/dev/sda3 is not full"
    fi
     
    三 运行结果
    please input a dir:/root
    is dir
    [root@localhost shell]# ./shell3.sh
    please input a dir:fd^H^H
    no no no
     
    四 判断Apache是否运行
    #!/bin/bash
    test=$(ps aux|grep httpd|grep -v grep)
    if [ -n "$test" ]
    then
    echo "$(date) httpd is OK"
    else
    service httpd start &>/dev/null
    echo "$(date) restart httpd!! "
    fi
     
    五运行结果
    [root@localhost shell]# ./shell4.sh
    Fri Jul 28 21:18:32 CST 2017 httpd is OK
    [root@localhost shell]# service httpd stop
    Redirecting to /bin/systemctl stop httpd.service
    [root@localhost shell]# ./shell4.sh
    Fri Jul 28 21:19:04 CST 2017 restart httpd!!
     
    六 注意事项
    shell4.sh这个文件名不能包含httpd,否则运行会出错。
    因为执行 ps aux|grep httpd 时,会包含文件名中的关键字httpd。
     
    展开全文
  • 【Linux】shell脚本实战-if单双分支条件语句详解

    千次阅读 热门讨论 2020-08-05 22:05:31
    文章目录if单分支1. 单分支语法分析2. 单分支语法规范3. if单分支脚本举例a. 检查是否为超级用户b. 找一个金钱大于1000000的结婚c. 判断文件是否为普通文件d....if语句流程图: 1. 单分支语法分析 第一种语法: if
  • 该结构的执行流程是先计算condition的值,若为true,则执行statements1语句,否则执行statements2语句。 案例: 如果我们要开发一个随机加法案例(本文以一位数为例),我们可以这样设计: 程序开始运行随机生成2个
  • 流程控制主要有三种结构 分别是 顺序结构、分支结构、循环结构 这三种结构代表三种代码执行的顺序 分支结构 由上到下执行代码的过程中 根据不同的条件 执行不同的 路经代码(执行代码多选一的过程)从而得到不同的...
  • if类型的分支语句

    2021-08-08 21:14:18
    if分支语句 做任何事情都需要遵循一定的规则,例如:一个公司的...单分支if语句将原本的顺序结构,当某个条件成立时多执行一个额外语句模块。 单分支语句采用if…的格式编写: if(表达式) {语句块一} /...
  • if…else语句 if…else 语句是指如果...if…else 语句流程图: 下面通过一个例子来更好的了解if…else 语句,三个数比较大小,求出最小值。 代码: #include<stdio.h> int main() { int x,y,z; int max; p
  • 程序执行流程是:先计算conditon表达式的值,如果其值为true,则执行statements语句,否则跳过if结构直接执行if结构后的语句。 下面,我们来看一个案例:键盘输入一个整数,检查该数是否能被5和6整除,是否能被5...
  • 程序的单分支结构 if语句 以下是 if 语句的语法:if (条件) { 语句块1 } else { 语句块2 } 其中的条件可以是任意表达式; 而且对这个表达式求值的结果不一定是布尔值。 ECMAScript 会自动调用 Boolean() 转换函数将...
  • shell脚本:if分支语句简单案例

    千次阅读 2020-02-26 14:12:44
    语法 if [ 条件判断1 ] ; then commands elif [ 条件判断2 ] ; then ...例1:用多分支 if 条件语句来判断用户输入的是一个文件还是一个目录。 脚本内容: #!/bin/bash #date:2020-2-26 #描述:判断文...
  • 1、顺序结构 定义: 程序 从上到下逐行地执行, 中间没有任何判断和跳转。 举例:两整数求和 #include<stdio.h> int main(){ int x,y,sum; printf("请输入两个正数",\n);
  • 流程控制主要有三种结构:顺序结构、分支结构、循环结构 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NmNiPgFb-1622962140946)(images\图片11.png)] 2.2 顺序流程控制 ​ [外链图片...
  • 选择结构:选择结构是根据条件判断的结果来选择执行不同的代码。...注意:if语句由条件表达式和紧随其后的语句组成。如果表达式后方有多个语句,必须要用花括号把所有语句包括起来。即: if(表达式)
  • linux 流程控制 -if语句

    2017-04-26 22:36:38
    流程控制 -if语句 1.单分支if条件语句  语法:  if [ 条件判断式 ];then  程序  fi  或者  if [ 条件判断式 ]  then  
  • if语句 switch语句 - 循环结构 if 语句 1.语句结构 if(条件表达式){ //执行语句 } 执行法则:表达式为真,则执行大括号内的语句; 如果表达式为假,则执行大括号外的语句。 eg: var age=prompt('请输入您的年龄:'...
  • 论java流程控制之选择结构、 一、三元表达式 关于三元表达式的描述我们可以通过一个案例来进行讲解。 对于上面的习题,我们可以看到,三元表达式就是在条件后加上“ ?”。然后在问号后有两个表达式,中间用 “ :”...
  • python中的流程控制语句结构有,顺序流程语句分支流程控制语句和循环流程控制语句。这里主要介绍分支流程控制语句 分支流程控制语句: 工作原理:根据条件表达式的结果执行相应的代码 单分支结构 语...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,145
精华内容 8,458
关键字:

双分支if语句的执行流程