精华内容
下载资源
问答
  • 1、单分支的if语句 if 条件测试命令 then 命令序列 fi 2、双分支的if语句 if 条件测试命令 then 命令序列1 else 命令序列2 fi 3、多分支的if语句(elif 可以嵌套多个,一般多了用case表达) if 条件测试命令1 then ...

    if语法:

    1、单分支的if语句

    if 条件测试命令

    then

    命令序列

    fi

    2、双分支的if语句

    if 条件测试命令

    then

    命令序列1

    else

    命令序列2

    fi

    3、多分支的if语句(elif 可以嵌套多个,一般多了用case表达)

    if 条件测试命令1

    then

    命令序列1

    elif 条件测试命令2

    then

    命令序列2

    .........

    else

    命令序列n

    fi

    案例1

    #!/bin/bash

    #######################################################################

    # "提示用户指定备份目录的路径,若目录存在则显示信息跳过,否则显示相应提示信息,并创建该目录"

    # "-----Designed by UNIX.ROOT Email: UNIX.ROOT@hotmail.com"

    ######################################################################

    read -p "What is your backup directoy:" BakDir

    if [ -d $BakDir ]; then

    echo "$BakDir already exist."

    else

    echo "$BakDir is not exist, will make it."

    mkdir $BakDir

    fi

    clip_image002

    本文出自 “UNIX/Linux Discovery” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1079173

    案例2

    #!/bin/bash

    #######################################################################

    #统计当前登录到系统中的用户数量,若判断是否超过三个,若是则显示实际数量并给出警告信息,否则列出

    登录的用户账户名称及所在终端

    # "-----Designed by UNIX.ROOT Email: UNIX.ROOT@hotmail.com"

    ######################################################################

    UserNum=`who | wc -l`

    if [ $UserNum -gt 3 ]; then

    echo "Alert, too many login users ( Total: $UserNum)."

    else

    echo "Login Users:"

    who | awk `{print $1,$2}`

    fi

    clip_image004

    本文出自 “UNIX/Linux Discovery” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1079173

    诺技术博客新地址: www.rsyslog.org ,欢迎前来访问!

    案例3

    #!/bin/bash

    #######################################################################

    #每隔5分钟检测一次 mysql服务进程的运行状态,若发现mysql进程已经终止,则在"/var/log/messages"文件中追加写入日志信息(包括当时时间)并重启httpd服务;否则不做任何操作

    # -----Designed by UNIX.ROOT Email: UNIX.ROOT@hotmail.com

    ######################################################################

    service httpd status &> /dev/null

    if [ $? -ne 0 ] ; then

    echo "At time:$(date):Http Server is down." >> /var/log/messages

    /etc/rc.d/init.d/httpd start

    fi

    # crontab -e

    #*/5 * * * * /data/shell.sh/chkdhcpd.sh

    clip_image006

    本文出自 “UNIX/Linux Discovery” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1079173

    案例4

    #!/bin/bash

    #######################################################################

    # 检查portmap进程是否已经存在,若已经存在则输出 "Portmap service is running.";否则检查是否存在"/etc/rc.d/init.d/portmap"可执行脚本,存在则启动portmap服务,否则提示"no portmap script files"

    # -----Designed by UNIX.ROOT Email: UNIX.ROOT@hotmail.com

    ######################################################################

    pgrep portmap &> /dev/null

    if [ $? -eq 0 ] ; then

    echo "Protmap service is running."

    elif [ -x "/etc/rc.d/init.d/portmap" ]; then

    /etc/rc.d/init.d/portmap start

    else

    echo "no portmap script files."

    fi

    clip_image008


    本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1079173,如需转载请自行联系原作者

    展开全文
  • 主要介绍了Linux shell脚本编程if语句的使用方法,大家参考使用吧
  • Linux shell if 语句无法识别命令 这两天看了一些shell编程的东西,在按照书上的代码编写运行的时候出现了意想不到的错误,明明很简单的if else语句硬是搞了一天才搞明白! shell 版本:bash 5.0 + vi文本编辑器 ...

    Linux shell if 语句无法识别命令

    这两天看了一些shell编程的东西,在按照书上的代码编写运行的时候出现了意想不到的错误,明明很简单的if else语句硬是搞了一天才搞明白!

    shell 版本:bash 5.0 + vi文本编辑器

    这里先给出正确的代码!脚本命名为test.sh

    #!/bin/bash
    # 
    #set -x
    echo -n "are you a student?"
    read answer
    if [ $answer = Y ]
      then
        echo "Yes, I'm a student!"
      else
        echo "No, I'm a teacher!"
    fi
    exit 0
    

    主要错误就是脚本格式的问题!
    1、if与方括号之间需要存在空格;
    2、方括号中的内容与方括号之间是需要存在空格的;
    3、等号两端需要空格。

    ==与=是等价的!

    如有其他疑问也可以一起交流!

    展开全文
  • 这语法实在是让人记不住。比如说判断参数1是否为0: ...if [ "$1" = "0" ] ; then echo $1 fi 这里[];then都是多余的。 有的时候还要使用-ne之类,更是让人抓狂。不是说脚本简单吗?这明明比java/c都复杂。 ...

    这语法实在是让人记不住。比如说判断参数1是否为0:

    if [ "$1" = "0" ] ; then
        echo $1
    fi

    这里[];then都是多余的。

    有的时候还要使用-ne之类,更是让人抓狂。不是说脚本简单吗?这明明比java/c都复杂。

    展开全文
  • If [ $a = $b ] 如果string1等于string2 (字符串允许使用赋值号做等号) if [ $string1 != $string2 ] 如果string1不等于string2  if [ -n $string ] 如果string 非空(非0),返回0(true)...

    文件表达式

    –b file   当file存在并且是块文件时返回真

    -c file   当file存在并且是字符文件时返回真

    -d file   当pathname存在并且是一个目录时返回真

    -e pathname   当pathname指定的文件或目录存在时返回真

    -f file   当file存在并且是正规文件时返回真

    -g pathname   当由pathname指定的文件或目录存在并且设置了SGID位时返回为真

    -h file   当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效

    -k pathname   当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真

    -p file   当file存在并且是命令管道时返回为真

    -r file   当由pathname指定的文件或目录存在并且可读时返回为真

    -s file   当file存在文件大小大于0时返回真

    -u pathname   当由pathname指定的文件或目录存在并且设置了SUID位时返回真

    -w pathname   当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。

    -o pathname   当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

    -x file   如果文件file存在且可执行,则返回真

    -z STRING   如果字符串长度为0则为真

      

    整数变量表达式

    if [ int1 -eq int2 ]    如果int1等于int2

    if [ int1 -ne int2 ]    如果不等于    
    if [ int1 -ge int2 ]       如果>=
    if [ int1 -gt int2 ]       如果>
    if [ int1 -le int2 ]       如果<=
    if [ int1 -lt int2 ]       如果<
       

    字符串变量表达式

    If  [ $a = $b ]         如果string1等于string2 (字符串允许使用赋值号做等号)
    if  [ $string1 !=  $string2 ]   如果string1不等于string2       
    if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
    if  [ -z $string  ]             如果string 为空
    if  [ $sting ]                  如果string 非空,返回0 (和-n类似) 


    展开全文
  • if语句​ if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:if ... fi 语句;if ... else ... fi 语句;if ... elif ... else ... fi 语句。1) if ... else 语句if ... ...
  • LINUX shell 脚本语句

    2013-12-30 11:08:19
    LINUXshell脚本语句的基本用法 一、if ...then...fi  if [ 条件判断一 ] && (||) [ 条件判断二 ]; then   elif [ 条件判断三 ] && (||) [ 条件判断四 ]; then 第二段判断,如果第一段不符合要求就转到
  • 格式if 条件 then Command else Command fi 例子创建一个文件,文件名为 test.sh,并进去#!/bin/bash number=150 if[ $number -gt 300] then echo "Number is greater" elif[ $number -lt 300] then echo "Number ...
  • Linux Shell 脚本中常用语句 1 for 语句 1.1 for…do…done (固定循环) for 这种语法,则是“已经知道要进行几次循环”的状态! for 的语法是: for var in con1 con2 con3 ... do 程序段 done 以上面的例子来...
  • 位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字,第一个参数代表$1,第二个参数代表$2,以此类推,参数数量的总数存在$#中,上面的例子显示...shell 编程中使用到得if语句内判断参数 ...
  • 最近老大让写一个shell脚本,每天从一个固定IP中取到相应文件,所以想写一个简单的shell脚本命令,供大家学习交流。先做一个简单的例子,先看效果吧, 代码如下: #!/bin/sh #定义一个变量datetime,并赋值 ...
  • 第一个参数代表$1,第二...shell 编程中使用到得if语句内判断参数  –b 当file存在并且是块文件时返回真  -c 当file存在并且是字符文件时返回真  -d 当pathname存在并且是一个目录时返回真  -e 当pathname指...
  • 过程式编程语言bash脚本编程面向过程的编程 顺序执行:默认法则,按照顺序一条一条语句执行 选择执行:分支,条件判断,符合条件的分支予以执行 循环执行:将同一段代码反复执行有限次,所以循环必须有退出条件,...
  • 以下代码表示,判断目录是否存在,若存在则结束条件判断和整个shell脚本,若不存在,则创建这个目录。 ``` $DIR="/media/cdrom" if [ ! -e $DIR] then mkdir -p $DIR fi ``` 疑问:按照4.2.3章节的内容,将!...
  • 原文出处:... 下面以具体例子来描述shell脚本if语句的使用 #!/bin/sh #define a variable,定义一个变量,此处等号两边不能有空格 v="test shell commond" #print the variable,且没有
  • 1.if 条件语句学习  if (表达式) #if(variable in array) 语句1 else 语句2 fi 1.例子 #!/bin/bash num=100 if ((num>4));then (()) 表示比较大小 echo "this num is $num greater 4" fi 逻辑...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 523
精华内容 209
关键字:

linuxshell脚本if语句

linux 订阅