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語句來判斷輸入的目錄是否存在,如果存在則輸出「目錄存在」,否則輸出「目錄不存在」。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/197525.html