自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 bash 腳本中使用 test 命令

系統(tǒng) Linux
bash 腳本中的 test 命令用于檢查表達式的有效性,檢查命令或表達式為 true 或者 false。此外,它還可以用于檢查文件的類型和權(quán)限。

如果命令或表達式有效,則 test 命令返回0,否則返回1。

使用 test 命令

test 命令的基本語法如下所示:

test “var1” operator “var2”

如果其中用到了變量,需要在變量名中使用雙引號。 我們看下面的例子,使用 test 命令檢查10是否等于20,以及10是否等于10:

$ test 10 -eq 20 && echo "true" || echo "false"

上面的命令中:

  • test - test 命令
  • 10 - 第一個變量
  • -eq - 比較運算符
  • 20 - 第二個變量

如果給定的表達式有效,則執(zhí)行第一個命令,否則執(zhí)行第二個命令。 在上述測試命令中,可以使用方括號 [] 來代替 test 命令。不過有一點需要記住,[ 標記和要比較的變量之間需要有空格:

[ 10 -eq 20 ] && echo "true" || echo "false"

除了整數(shù)以外,也可以在 bash 中使用 test 命令比較字符串,下面我們來看一些例子。

使用 test 命令比較字符串

檢查字符串是否不為空

-n 選項用于檢查字符串長度是否為非零。如果字符串不為空則返回 true,如果字符串為空,則返回 false:

$ [ -n "sam" ] && echo "True" || echo "False"

檢查字符串是否為空

-z 選項用于檢查字符串長度是否為零。如果字符串長度為零,則返回true,否則返回false:

$ [ -z "sam" ] && echo "True" || echo "False"

檢查字符串是否相等

“=”運算符檢查string1是否等于string2。如果兩個字符串相等,則返回0;如果兩個字符串不相等,則返回1:

$ [ "sam" = "SAM" ] && echo $? || echo $?

在這里,表達式略有不同。stdout 變量打印使用 $? 而不是 true 或 false。

檢查字符串是否不相等

!=運算符檢查 String1 是否不等于 String2。如果這兩個字符串不相等,則返回0。如果兩個字符串相等,則它返回1:

[ "abc" != "ABC" ] && echo $? || echo $?

test 命令比較整數(shù)

檢查數(shù)字是否相等

-eq 選項檢查兩個整數(shù)是否相等,如果相等返回0,否則返回1:

[ 10 -eq 20 ] && echo $? || echo $?

檢查數(shù)字是否不相等

-ne 選項檢查兩個整數(shù)是否不相等,如果不相等返回0,否則返回1:

[ 10 -ne 20 ] && echo $? || echo $?

檢查一個數(shù)字是否大于等于另一個

選項 -ge 用于檢查整數(shù)1 是否大于等于整數(shù)2,如果是則返回0,否則返回1:

[ 100 -ge 10 ] && echo $? || echo $?

-gt 運算符檢查整數(shù)1是否大于整數(shù)2。如果是,則返回0。否則,返回1:

[ 20 -gt 10 ] && echo $? || echo $?

檢查一個數(shù)字是否小于等于另一個

-le 運算符檢查整數(shù)1是否小于或等于整數(shù)2。如果為真,則返回0,否則返回1:

[ 5 -le 10 ] && echo $? || echo $?

-lt 運算符檢查整數(shù)1是否小于整數(shù)2。如果整數(shù)1小于整數(shù)2,則返回0,否則返回1:

[ 5 -lt 10 ] && echo $? || echo $?

test 命令與文件和目錄操作

test 命令還可用于文件和目錄,下面我們來看幾個例子。 下面的命令用于檢查文件對于當前用戶是否可執(zhí)行,如果可執(zhí)行,返回0,否則返回1:

[ test -x filename ] && echo executable || echo non-executable

也可以相同的方式檢查文件的其他權(quán)限,比如 r 和 w。在此可使用的其他常用參數(shù)包括:

命令

描述

-e

目錄/文件是否存在

-f

是否為文件

-d

是否為目錄

-s

文件大小是否大于0

-L

是否為符號鏈接

-S

是否為套接字(socket)

在 bash 腳本中使用 test 命令

上面的例子我們是使用的一行代碼做的演示,除此以外,我們還可以在 bash 腳本中使用 test 命令以及 if else 分支條件。 下面我們來看一個簡單的例子,傳遞參數(shù)用于比較兩個數(shù)字:

#!/bin/bash
## Check if the numbers are equal or not
read -p "Enter the first number: " num1
read -p "Enter the second number: " num2
if test "$num1" -eq "$num2"
then
echo "$num1 is equal to $num2"
else
echo "$num1 is not equal to $num2"
fi

大家可以執(zhí)行一下,看看結(jié)果,如下圖所示:

責任編輯:龐桂玉 來源: TIAP
相關(guān)推薦

2022-03-30 09:32:32

BashtestLinux

2020-04-09 10:18:51

Bash循環(huán)Linux

2022-10-25 09:07:28

Linuxxargs命令

2011-08-23 09:56:52

UnicodeLua

2018-05-16 10:32:06

Linux命令find

2018-06-26 09:15:24

Linux命令history

2022-11-18 10:16:26

Linuxwc 命令

2020-10-13 19:04:58

Bash信號捕獲Shell腳本

2021-08-30 07:50:42

腳本語言命令行

2011-08-25 13:22:40

CEGUILua腳本

2011-08-25 09:55:27

2023-09-14 15:05:33

grep正則表達式

2014-08-05 11:17:28

Bash腳本測試

2022-12-22 20:47:01

腳本循環(huán)結(jié)構(gòu)

2021-03-14 09:28:24

Linux Shell腳本

2022-10-09 10:18:44

LinuxShell腳本

2023-10-19 14:52:27

2020-06-24 15:30:39

Bashhistory命令Linux

2023-01-31 17:36:22

IPLinux網(wǎng)絡(luò)

2021-07-13 07:52:02

Linuxgrep命令
點贊
收藏

51CTO技術(shù)棧公眾號