shell脚本中的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;
楚娄紫轩: 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;