shell脚本中的if中多条件语句如何写。

作者&投稿:督菁 (若有异议请与网页底部的电邮联系)
bat脚本if中多条件要如何写?~

if %a% == 1 if %b% == 2 echo aaaaa
if not %a% == 1 if %b% == 2 echo bbbb
if %a% == 1 if not %b% == 2 echo bbbb
if not %a% == 1 if not %b% == 2 echo cccc

很麻烦,但是批处理也只能这么写了,批处理只是dos的延伸,说到底设计之初就没把它当成语言,而只是让操作dos更方便而已。

if "%date:~5,2%"=="06" if "%date:~8,2%"=="01" if %time:~,5"="00:00" echo Happy Children's Day!
pause

可以使用 if-elif-else 语法来写多条件语句。

1、首先要理解if-else的基本用法,if条件+then操作+else操作+fi闭合,书写方法如下:

2、if -elif-else 语法的具体格式--if条件多分支,书写方法如下:

3、实例 - if单条件多分支,这个实例的输出结果是:a 小于 b。

4、实例 - if多条件多分支,这个实例输出结果是:a 等于 b,或 a小于10。

扩展资料

1、shell语法注意事项

shell的if语法和C语言等高级语言非常相似,唯一需要注意的地方就是shell的if语句对空格方面的要求比较严格,如果在需要空格的地方没有打上空格,就会报错。

如if [ 1 == 1 ];then echo "abc";fi中如果在少写了if后面的空格就报错:

2、 shell语法中[[ ]]和[ ]的主要区别

(1) [ ] 实际上是bash 中 test 命令的简写。即所有的 [ expr ] 等于 test expr。
对 test 命令来说, 用 -eq 要进行数字比较,而你此时传入字符串,就报错了。


(2) [[ ]] 是内置在shell中的一个命令,它比test强大的多。支持字符串的模式匹配(使用=~操作符时甚至支持shell的正则表达式)。逻辑组合可以不使用test的-a,-o而使用&& ||。



1、首先要理解shell中if语句的用法才能更好的理解if多条件语句的写法,在shell中条件语句是“if-then”,if语句后面是一个命令执行结束的退出状态码是 0,则执行 then 部分的命令,否则then 不执行;fi是if的结束标志:


2、if语句的嵌套使用和其他语言基本一致,直接在if中继续使用if语句即可,嵌套的层数没有限制,但最好不要过多的层数,这样会让代码显得比较混来,难以理解:

3、多个条件判断使用“if then-elif then”,这里和其他编程语言不同,最后可以加else也可以不加else:



if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi

if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi

是这个意思吗

if [ [ $a == "aa" -a $b == "bb"] -o [ $c == "cc" -a $d == "dd" ] ]
then
echo "success"
else
echo "false"
fi
解释:shell中,支持==,也支持=。
==是比较,=是赋值。(看评论中的年限是16年的,或许18年的现在代码更新换代了吧)
-a 可以理解为and
-r 可以理解为or
if后面跟[],且与或非三种必须在[]中使用!


编写一个shell脚本,添加100个新用户
i=1for (1..100)do groupadd users adduser user$i -g users echo user | passwd "user$1" --stdin i=$( $i + 1)done添加100用户在users组,并设置密码为user

linux shell 脚本 wak语句中 awk 'BEGIN { FS="'"'"'";RS="\\n"} {...
其实FS="'"'"'";的意思是以 ' (单冒号)作为分隔符(粘贴到这上面看着不是太清楚,你自己弄下)linux-hg2:~ # echo '_"'"'"'"_'_"'"_ (两个双冒号,中间一个单冒号)linux-hg2:~ # cat test.txt ab'c'b linux-hg2:~ # awk 'BEGIN { FS="'"'"'";RS="\\n"}{print $...

在linux中写出一个shell脚本,打印输出1~5的平方
!\/bin\/bash read -p "please input a number:" num sum=0 for ((i=1;i<=$num;i++))do sum=$[$i**2+$sum]done echo $sum 注释:num:输入的数;sum:保存结果;i**2:求平方

1:编写一个Shell脚本,他把第二个位置参数及其以后的各个参数指定的文件...
第一个问题 !\/bin\/bash while [ "x$2" != "x" ]; do cp $2 $1 shift done 第二个问题 !\/bin\/bash date num=`w|grep "username"|grep -cv "grep"`if [ $num -ne 0 ]; then write username <<-EOF you are online EOF fi ...

创建一个shell脚本,它从用户那里接受十个数,并显示已输入的最大的数...
!\/bin\/sh if [ $# -ne 10 ]; then echo -e "Wrong parameters!\\nYou MUST input 10 digits."exit 1 fi min=$1 max=$1 i=1 while [ $i -lt 10 ]do shift 1 let i+=1 [ $1 -lt $min ] && min=$1 [ $1 -gt $max ] && max=$1 done echo "Min=$min"echo "Max...

如何在shell脚本中使用变量
1、linux shell中的变量一般定义格式为:var=value。其中var是变量名称,=是赋值,value是给变量赋的值。比如下面的变量定义。a=12; b="hello world"2、注意变量名称的第一个字符不可以是数字,但是可以是下划线。如下示例则为非法的变量名。3、要使用变量的值,在变量前面加上$符号即可。比如下面的...

shell 脚本里的变量怎么加1
shell 脚本里变量加一方式如下六种:1、第一种整型变量自增方式 a=$(($a+1))echo $a 2、第二种整型变量自增方式 a=$[$a+1]echo $a 3、第三种整型变量自增方式 a=`expr $a + 1`echo $a 4、第四种整型变量自增方式 let a++ echo $a 5、第五种整型变量自增方式 let a+...

...2:编写shell脚本max.sh,求所有命令行参数中的最大值。
!\/bin\/sh#factorial.shfactorial_1(){num=$1sum=1for((i=0;i<$num;i++))doi=`expr $i + 1`sum=`expr $sum \\* $i`doneecho "$num 的阶乘是 $sum"}for i in {1..10}dofactorial_1 $idone#!\/bin\/bash#max.shmp=$*echo $mp|sed 's\/ \/\\n\/g'|sort -n >uuu.$$tail ...

Linux中编写shell脚本,输出如下序列:1,3,2,4,3,5,4,6,···100...
!\/bin\/bash#script name prg8.shcleari=1for ((j=1;j<=98;j++))do echo -n "$j,`expr $j + 2`," if [ $i -eq 10 ] then echo "" i=1 else i=$((i+1)) fi doneecho "" 注释里已经说了,script name prg8.sh,脚本名叫prg8.sh,当然,...

shell for循环 读取文件 加上(i++等)急!!
for ((i=1;i<3;i++))do echo $i;done;

呼图壁县13525059850: shell脚本中的if中多条件语句如何写.
楚娄紫轩: if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ]; then echo "success" fi 是这个意思吗

呼图壁县13525059850: 如何使用shell脚本中的if语句检查条件 -
楚娄紫轩: [root@localhost ~]# cat c a=1 if [ $a -eq 1 ];thenecho a 等于1 elseecho a 不等于1 fi [root@localhost ~]# sh c a 等于1

呼图壁县13525059850: Linux bash/sh/shell编程中的if语句应该怎么写 -
楚娄紫轩: line="#abcmatch BCD" REGEXP="^[#]" # 变量赋值不需要前缀$ if [[ $line =~ $REGEXP ]] && [[ $line != '' ]]; then #粗心 [[ ]] 要配对使用 你写成了 [[ ] [ ]] true #shell 不能使用空的if 结构,至少要有一个命令. 可以使用true命令 . echo yes else ...

呼图壁县13525059850: linux中的shell脚本如何实现 if(条件) { if() {} else{} } else { if(){} else{} } 这种功能?? -
楚娄紫轩: if 条件;then if 条件;then 代码 else 代码 fi elseif 条件;then 代码 else 代码 fi fi

呼图壁县13525059850: UNIX/Linux shell脚本 if语句的几个案例 -
楚娄紫轩: if [条件测试1] && (||) [条件测试2]; //以if为起始,后面可以接若 then //干个判断式,使用&&或|| 第一段程序执行内容 elif [条件测试3] && (||) [条件测试4]; //第二段的判断,如果第一 then //段没有符合就来此搜寻条件 第二段程序执行内容 else ...

呼图壁县13525059850: shell脚本中: if [ - f /FileA - a - O /FileB ]; then 语句中判断条件怎么理解,逻辑关系是什么? -
楚娄紫轩: -a是and,左右条件两者都成立-o是or,左右条件任意一条成立

呼图壁县13525059850: shell编程可以在if中写多行命令语句吗 -
楚娄紫轩: 可以,命令之间用分号隔开.

呼图壁县13525059850: linux shell编程 if判断语句的判定条件 -
楚娄紫轩: #!/bin/bash a=$(grep '>' file | wc -l ) if [ $a = 1 ];then 要执行的语句 fi

呼图壁县13525059850: 如何在LINUX SHELL 脚本中 用IF语句表达 -
楚娄紫轩: if [ -d /home/c ];then do sth else do sth fi

呼图壁县13525059850: shell脚本, if语句必须要有else吗 -
楚娄紫轩: 不必须,可以直接 if 【条件】【要做的内容】 fi; 这样就可以了.也可以用else if 【条件1】【要做的内容1】 else if 【条件2】 【要做的内容2】 fi;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网