shell脚本 if判断条件问题

作者&投稿:雀晴 (若有异议请与网页底部的电邮联系)
shell脚本中的if中多条件语句如何写。~

可以使用 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而使用&& ||。

while read filename
do
done< /home/ismp/auto_dep/dep_file_name

然后sh -x yourshell
看看操作过程

#!/bin/sh
KEY="aaa"
PATH="" # 这里输入你要求转换的目录
/bin/ls $PATH > .tmp
while read FILENAME
do
# 匹配KEY且不匹配"tar"
if [[ $FILENAME =~ $KEY && ! $FILENAME =~ "tar" ]]
then
/bin/tar -cvf $FILENAME.tar $FILENAME
fi
done < .tmp/bin/rm -f .tmp

你既然已经知道这个文件叫什么就没有意义了。。。。理论上应该用find命令或者你知道这个目录在系统中的什么位置。
比如
ls | grep aaa
a=`echo $?`
b=`ls | grep aaa`
if [ $a -eq 0 ]
then
tar zcvf Name.tar.gz $b
else
echo 'Don't have this file.'
fi


福清市13495486033: 如何使用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

福清市13495486033: shell脚本 if判断条件问题 -
之爱善唯: 你既然已经知道这个文件叫什么就没有意义了....理论上应该用find命令或者你知道这个目录在系统中的什么位置.比如ls | grep aaaa=`echo $?`b=`ls | grep aaa`if [ $a -eq 0 ]thentar zc...

福清市13495486033: shell if 多条件判断 -
之爱善唯: #其中mkdir外面的符号是esc下来那个按键上的符号,表示执行命令 #!/bin/bash if [ `mkdir -p ~/1/1` -a `mkdir ~/2` ];thenecho "成立{$?}" elseecho "不成立{$?}" fi

福清市13495486033: shell if 多条件判断#!/bin/bashif mkdir ~/1/1 (1) mkdir ~/2 (2)then echo "成立 $?"else echo "不成立 $?"fi 问题:让命令(1)、(2)为并列关系,“... -
之爱善唯:[答案] #!/bin/bash if mkdir ~/1/1 && mkdir ~/2 then echo "成立 $?" else echo "不成立 $?" fi

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

福清市13495486033: 为什么我的shell文件,文件存在但是用if判断为什么却不存在,问执行脚本两次却存在? -
之爱善唯: 那是因为shell是异步运行的,如果运行后立即用if去判断生成的文件在不在,这时候shell仍然在运行中的,所以文件实际上是不存在的,即使差0.00001毫秒,不在的它就是不在,你说在那是因为你是过了几秒钟才去看的,当然在啦.如果连续运行两次,道理还是一样,第二次运行的时候它实际上判断的是第一次运行时生成的文件,所以它会判断存在. 你应该在shell运行后延时1秒以上(根据实际情况而定)再用IF去判断.

福清市13495486033: linux中的shell脚本如何实现 if(条件) { if() {} else{} } else { if(){} else{} } 这种功能?? -
之爱善唯: if 条件;then if 条件;then 代码 else 代码 fi elseif 条件;then 代码 else 代码 fi fi

福清市13495486033: shell脚本问题,while里面if条件判断,求大神指导 -
之爱善唯: while read filename do done 然后sh -x yourshell 看看操作过程

福清市13495486033: 有懂shell脚本的朋友吗?帮忙看下这个if判断是什么意思 -
之爱善唯: 不是的,你执行过命令就会发现,如果你单单grep一个进程,如果进程还在,她至少是2条记录,因为grep本身还有一条进程信息 所以你的脚本是发现进程没有了就执行php启动它

福清市13495486033: 您好,请问个在SHELL脚本下执行if判断的一个问题, -
之爱善唯: 我不懂您的断数据库表,但是在shell中做一个判断是这样的: Nrows为您说的字段,bcp那行改成您要运行的bcp命令:if [ $Nrows -eg 1 ]then bcp lls..dgzhtxt in...

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