test是shell中的內建命令,用來檢測某個條件是否成立,test命令通常和if語句一起使用比較test命令通常可以在數值、字串、文字這三個方面進行檢測
test命令可以簡寫為,用法[ expression ]
描述n1 -eq n2
n1和n2是否相等
n1 -ge n2
n1是否大於等於n2是否相等
n1 -gt n2
n1是否大於n2是
n1 -le n2
n1是否小於等於n2
n1 -lt n2
n1是否小於n2
n1 -ne n2
n1是否不相等n2
#!/bin/bash
val=10
if[ $val1 -eq 10 ]
then
echo 'equal'
fi
執行結果:equal
#!/bin/bash
val=`echo "scale=4;10\3 | bc"`
if[ $val1 -qt 2 ]
then
echo 'yes'
fi
執行結果:報錯 在test命令中不能使用浮點數比較
描述str1 = str2
檢查str1是否和str2相同
str1 != str2
檢查str1是否和str2不同
str1 > str2
檢查str1是否比str2大
str1 < str2
檢查str1是否比str2小
-n str1
檢查str1的長度是否非0
-z str1
檢查str1的長度是否為0
#!/bin/bash
testing=root
if [ $user=$testing ]
then
echo "welcome $tesing"
fi
執行結果:welcome root
val1=baseball
val2=hockey
if [ $val1 > $val2 ]
then
echo "yes"
else
echo "no"
執行結果:會出現hockey檔案原因為:大小寫符號必須轉義,否則shell會把他們當做重定向符號
val1=baseball
val2=hockey
if [ $val1 \> $val2 ]
then
echo "yes"
else
echo "no"
執行結果:no這是由於按照asci碼進行比較,c大於b
#!/bin/bash
val1='testing'
val2=' '
if [ -n "$val1" ]
then
echo "not empty"
else
echo "empty"
fi
執行結果:not empty
#!/bin/bash
val1='testing'
val2=' '
if [ -z "$val2" ]
then
echo " empty"
else
echo " not empty"
fi
執行結果:empty比較
描述-d file
檢查file是否存在並且為乙個目錄
-e file
檢查file是否存在
-f file
檢查file是否是存在並且為乙個檔案
-r file
檢查file是否是存在並且可讀
-s file
檢查file是否是存在並且非空
-w file
檢查file是否是存在並且可寫
-x file
檢查file是否是存在並且為可執行
-o file
檢查file是否是存在並且屬當前使用者所有
-g file
檢查file是否是存在並且預設組與當前使用者相同
file1 -nt file2
file1是否比file2新
file1 -nt file2
file1是否比file2舊
#!/bin/bash
if [ -d $home ]
then
echo "exist"
cd $home
ls -a
else
echo "no exist"
執行結果:exist,且檢視該目錄下的所有檔案
#!/bin/bash
if [ -e $home ]
then
echo "exist"
if [ -e $home/tesing ]
then
date >> $home/tesing
else
echo "creating this file"
date > $home/testing
else哦
echo "sorry"
file=test
touch $file
if [ -s $file ] ##判斷存在且非空
then
echo"exist and not empty"
else
echo "exist and empty"
fi
執行結果:exist and empty
file=test
touch $file
if [ -g $file ] ##
then
echo "same group"
else
echo "different group"
fi
執行結果:same group
if [ 01.sh -nt 02.sh ] ##
then
echo "01.sh比02.sh新"
else
echo "01.sh比02.sh舊"
fi
執行結果:echo "01.sh比02.sh舊
if [ 01.sh -ot 02.sh ] ##
then
echo "01.sh比02.sh舊"
else
echo "01.sh比02.sh新"
fi
執行結果:echo "01.sh比02.sh舊
#!/bin/bash
if [ -d $home ] &&[ -w $home/testing ]
then
echo "exist and can write"```
fi
執行結果: exist and can write總結:
Shell中的內建命令 test
比較 描述n1 eq n2 檢查n1是否與n2相等 n1 ge n2 檢查n1是否大於或等於n2 n1 gt n2 檢查n1是否大於n2 n1 le n2 檢查n1是否小於或等於n2 n1 lt n2 檢查n1是否小於n2 n1 ne n2 檢查n1是否不等於n2 比較描述 str1 str2 檢查...
shell基礎命令 test命令
test 相當於test命令 判斷a和b的值是否相等 test a b echo yes echo no a b echo yes echo no 等於 不等於 eq等於 ne不等於 le小於等於 lt小於 ge大於等於 gt大於 a的值為1 b的值為2 root rhel8 mnt a b ech...
(十)shell語法中的test命令用法
test命令用法。功能 檢查檔案和比較值 1 判斷表示式 if test 表示式為真 if test 表示式為假 test 表示式1 a 表示式2 兩個表示式都為真 test 表示式1 o 表示式2 兩個表示式有乙個為真 2 判斷字串 test n 字串 字串的長度非零 test z 字串 字串的長...