shell腳本是Linux下最常用的腳本之一,在編寫shell腳本過程中,if語句是最常用的控制語句之一。if語句可以將程序的流程進行控制,使得程序在不同情況下可以進行不同的操作,本文將從多個方面對shell腳本中的if語句進行詳細介紹。
一、if語句的基本使用
if語句的基本用法如下:
if [ condition ]
then
command1
else
command2
fi
當condition滿足時,執行command1;否則,執行command2。需要注意的是,在if和[之間,以及]和condition之間都必須有空格。
if語句中可以使用的比較符包括:-eq(等於)、-ne(不等於)、-gt(大於)、-lt(小於)、-ge(大於等於)、-le(小於等於)。
示例代碼:
#!/bin/bash
echo "Please input a number:"
read num
if [ $num -eq 0 ]
then
echo "The number is 0."
elif [ $num -gt 0 ]
then
echo "The number is positive."
else
echo "The number is negative."
fi
二、if語句中的邏輯運算符
在if語句中,我們可以使用邏輯運算符(&&、||、!)對多個條件進行組合。其中,&&表示「與」,||表示「或」,!表示「非」。
示例代碼:
#!/bin/bash
echo "Please input your age:"
read age
if [ $age -ge 18 ] && [ $age -le 60 ]
then
echo "You are in the working age."
fi
if [ $age -lt 18 ] || [ $age -gt 60 ]
then
echo "You are not in the working age."
fi
if ! [ $age -ge 18 ]
then
echo "You are too young."
fi
三、if語句與test命令
在if語句中,我們可以使用test命令來進行條件判斷。test命令包含了if語句中常用的比較和文件判斷,我們可以通過man test命令來查看test命令的詳細用法。
示例代碼:
#!/bin/bash
echo "Please input a file path:"
read file
if test -f $file
then
echo "The file exists."
else
echo "The file does not exist."
fi
四、if語句中的複合命令
在if語句中,我們還可以使用複合命令來進行更加複雜的操作。常用的複合命令包括:
- ():將子命令放到一個子shell中執行;
- { command1 ; command2 }:將多個命令放到一起執行;
- if command1 ; then command2 ; fi:if語句中的嵌套。
示例代碼:
#!/bin/bash
if (ls ; echo "Done")
then
echo "List the files."
fi
{ ls ; echo "Done" ; } > output.txt
if [[ -f output.txt && $(wc -l < output.txt) -gt 0 ]]
then
echo "List the files and redirect to output.txt."
fi
if [[ $USER == "admin" ]]
then
if [[ $(whoami) == "root" ]]
then
echo "Welcome, root admin!"
else
echo "You are not root."
fi
else
echo "You are not an admin."
fi
五、if語句的小技巧
在if語句中,我們還可以使用以下小技巧:
- 使用test命令的反向判斷:if ! test -f $file;
- 使用雙括弧:if (($num > 0));
- 使用雙中括弧:if [[ $str == “hello” ]];
- 使用字元串比較符:if [ $str == “hello” ];
示例代碼:
#!/bin/bash
if ! test -f output.txt
then
echo "Failed to redirect output to output.txt."
fi
if (($num > 0))
then
echo "The number is positive."
fi
if [[ $str == "hello" ]]
then
echo "The string is hello."
fi
if [ $str == "hello" ]
then
echo "The string is hello."
fi
六、總結
本文從多個方面對shell腳本中的if語句進行了詳細的介紹,包括基本用法、邏輯運算符、test命令、複合命令和小技巧。在實際編寫shell腳本時,if語句是最常用的控制語句之一,掌握了if語句的用法,可以使我們編寫更加高效和靈活的腳本。
原創文章,作者:PZMHN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372998.html
微信掃一掃
支付寶掃一掃