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语句来判断输入的目录是否存在,如果存在则输出“目录存在”,否则输出“目录不存在”。