Shell教程
作者: CodeYang
条件控制语句

if-elif 语法格式

if-elif条件控制语句 以关键字"if"开头,"fi"结尾


if 条件测试语句; then  
   #TODO Action
elif [[ $age -gt 90 ]]; then
   #TODO Action
...#more elif

else
   #TODO  Action
fi 

age=26;
if [[ $age -gt 90 ]]; then
    echo "90+";
elif [[ $age -gt 75 ]]; then
    echo "75+";
elif [[ $age -gt 60 ]]; then
    echo "60+";
elif [[ $age -gt 45 ]]; then
    echo "45+";
else
    echo "45-";
fi;


条件测试语句

常见的条件测试语句包括: 对文件属性的判断,字符串类型比较,数值型比较。


(1)文件属性判断

文件属性判断包括:对文件的读、写、可执行权限的判定;是普通文件还是目录的判定;文件类型的判定。


例:

#!/bin/bash

if [ -f "/tmp/test.txt" ]; then
    echo "is a file";
else
    echo "is a directory";
fi;

if [ -w "/tmp/test.txt" ]; then
    echo "can write";
else
    echo "can't write";
fi;

if [ -c "/tmp/test.txt" ]; then
    echo "charactor";
elif [ -c "/tmp/test.txt" ]; then
    echo "block";
else
    echo "other";
fi;

if [ -s "/tmp/test.txt" ]; then
    echo "size>0";
else
    echo "empty";
fi;


其它文件测试相关语句有:


[ -f "/tmp/test.txt" ]  ##判断文件是普通文件还是目录
[ -r "/tmp/test.txt" ]  ##判断文件是否可读
[ -w "/tmp/test.txt" ]  ##判断文件是否可写
[ -x "/tmp/test.txt" ]  ##判断文件是否可执行
[ -c "/tmp/test.txt" ]  ##判断文件是否为字符设备
[ -b "/tmp/test.txt" ]  ##判断文件是否为块设备
[ -s "/tmp/test.txt" ]  ##判断文件大小是否大于0


(2)字符串类型比较

(3)数值型比较

标签: echo、tmp、txt、elif、fi
一个创业中的苦逼程序员
  • 回复
隐藏