您的位置:

Shell判断详解

Shell脚本在日常操作中经常用到条件判断,从而实现不同的操作。本文从多个方面介绍Shell判断的使用方法。

一、Shell判断输入

在Shell脚本中,我们常常需要通过判断用户的输入来决定后续的操作。下面是一个示例代码,用户输入数字1时输出hello,输入数字2时输出world:

#!/bin/bash
read -p "请输入数字(1或2):" input

if [ ${input} -eq 1 ]; then
    echo "hello"
elif [ ${input} -eq 2 ]; then
    echo "world"
else
    echo "输入有误"
fi

首先通过read命令获取输入的值,然后使用if-elif-else语句进行判断,判断输入的数字是否为1或2,如果是,则输出对应的内容。如果输入的不为1或2,则输出“输入有误”。

二、Shell判断素数

判断一个数是否为素数,在Shell脚本中也可以实现。下面是一个示例代码,判断输入的数字是否为素数:

#!/bin/bash
read -p "请输入一个自然数:" input
flag=1
for ((i=2;i<=$input/2;i++));do
    if [ `expr $input % $i` -eq 0 ];then
        flag=0
        break
    fi
done
if [ $flag -eq 0 ];then
    echo "$input 不是素数"
else
    echo "$input 是素数"
fi

首先通过read命令获取输入的值,然后使用for循环对输入的数字进行遍历,判断是否有除1和本身之外的因数。最后通过if语句判断是否为素数。

三、Shell判断字符串是否为空

在Shell脚本中,我们经常需要判断字符串是否为空。下面是一个示例代码,判断输入的字符串是否为空:

#!/bin/bash
read -p "请输入字符串:" input

if [ -z "$input" ];then
    echo "输入的字符串为空"
else
    echo "输入的字符串为:$input"
fi

通过if语句和-z选项判断输入的字符串是否为空,如果为空则输出“输入的字符串为空”,否则输出输入的字符串。

四、Shell判断数字大小

在Shell脚本中,我们可以通过数字比较符号来判断数字的大小。下面是一个示例代码,比较两个输入的数字的大小:

#!/bin/bash
read -p "请输入第一个数字:" input1
read -p "请输入第二个数字:" input2

if [ $input1 -gt $input2 ]; then
    echo "$input1 比 $input2 大"
elif [ $input1 -eq $input2 ]; then
    echo "$input1 等于 $input2"
else
    echo "$input1 比 $input2 小"
fi

通过if-elif-else语句和比较符号(>-大于,=-等于,<-小于)来判断两个输入的数字的大小,并分别输出对应的结果。

五、Shell判断大小

在Shell脚本中,我们可以通过文件大小来判断文件的大小。下面是一个示例代码,判断输入的文件大小是否大于100KB:

#!/bin/bash
read -p "请输入文件名:" filename

if [ -f $filename ]; then
    filesize=`ls -l $filename | awk '{ print $5 }'`
    if [ $filesize -gt 102400 ]; then
        echo "$filename 文件大小大于100KB"
    else
        echo "$filename 文件大小小于等于100KB"
    fi
else
    echo "$filename 文件不存在"
fi

通过-f选项判断输入的文件是否存在,如果存在则获取文件大小,并通过if语句判断文件大小是否大于100KB,并分别输出对应的结果。如果文件不存在,则输出“文件不存在”。

六、Shell判断字符串相等

在Shell脚本中,我们可以通过字符串比较符号来判断两个字符串是否相等。下面是一个示例代码,判断输入的字符串是否等于“hello”:

#!/bin/bash
read -p "请输入字符串:" input

if [ "$input" = "hello" ]; then
    echo "输入的字符串为hello"
else
    echo "输入的字符串不是hello"
fi

通过if语句和=选项来判断输入的字符串是否等于“hello”,如果等于则输出“输入的字符串为hello”,否则输出“输入的字符串不是hello”。

七、Shell判断文件是否存在

在Shell脚本中,我们可以通过-f选项来判断文件是否存在。下面是一个示例代码,判断输入的文件是否存在:

#!/bin/bash
read -p "请输入文件名:" filename

if [ -f $filename ]; then
    echo "$filename 文件存在"
else
    echo "$filename 文件不存在"
fi

通过-f选项和if语句来判断输入的文件是否存在,如果存在则输出“文件存在”,否则输出“文件不存在”。

八、Shell判断文件不存在

在Shell脚本中,我们可以通过! -f选项来判断文件是否不存在。下面是一个示例代码,判断输入的文件是否不存在:

#!/bin/bash
read -p "请输入文件名:" filename

if [ ! -f $filename ]; then
    echo "$filename 文件不存在"
else
    echo "$filename 文件存在"
fi

通过! -f选项和if语句来判断输入的文件是否不存在,如果不存在则输出“文件不存在”,否则输出“文件存在”。

九、Shell判断目录是否存在

在Shell脚本中,我们可以通过-d选项来判断目录是否存在。下面是一个示例代码,判断输入的目录是否存在:

#!/bin/bash
read -p "请输入目录路径:" dirpath

if [ -d $dirpath ]; then
    echo "$dirpath 目录存在"
else
    echo "$dirpath 目录不存在"
fi

通过-d选项和if语句来判断输入的目录是否存在,如果存在则输出“目录存在”,否则输出“目录不存在”。