shell基础--test命令的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell基础--test命令的使用相关的知识,希望对你有一定的参考价值。

test :用于文件类型检查和变量比较

一.用途:

1.判断表达式

技术分享 

2.判断字符串

技术分享

3.判断整数

技术分享

4.判断文件

技术分享

测试例子:

(1).test

[[email protected]~_~ day5]# cat test.sh

#!/bin/bash

a=$1

b=$2

if test $a -eq $b

then

   echo "a=b"

else

   echo "a!=b"

fi

[[email protected]~_~ day5]# sh test.sh 1 1

a=b

[[email protected]~_~ day5]# sh test.sh 1 2

a!=b 

---------------------------------------------

(2).[]

[[email protected]~_~ day5]# cat test.sh

#!/bin/bash

a=$1

b=$2

[ $a = $b ] && echo "a=b" || echo "a!=b"

[[email protected]~_~ day5]# sh test.sh 1 2

a!=b

[[email protected]~_~ day5]# sh test.sh 1 1

a=b

-------------------------------------------------

(3).判断文件

[[email protected]~_~ day5]# cat test2.sh

#!/bin/bash

[ -f "$0" ]&& echo "$0 is a file" || echo "$0 is not a file"

[[email protected]~_~ day5]# sh test2.sh

test2.sh is a file

 

二.test,[] , [[]]用法比较

[]与test等价,均为shell得到内部命令,而[[]]是shell得到关键字,bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码,故推荐用 [[]] 作为条件判断语句,不易出现逻辑错误。另外,[[]]还支持模式匹配和正则表达式

 (1).语法比较

[[]]:  if [[ $a != 1 && $a != 2 ]]

[]:    if [ $a -ne 1] && [ $a != 2 ] 或者 if [ $a -ne 1 -a $a != 2 ]

 (2). [[]] 支持模式匹配

[[email protected]~_~ day5]# cat test4.sh

#!/bin/bash

[[ "abcd" == a*d ]]&& echo True || echo Flase

[ "abcd" == a*d ]&& echo True || echo Flase

[[email protected]~_~ day5]# sh test4.sh

True

Flase

(3).[[]] 支持正则表达式

[[email protected]~_~ day5]# cat test5.sh

[[ "hello" =~ ^h ]]&& echo Ture || echo False

[[email protected]~_~ day5]# sh test5.sh

Ture

以上是关于shell基础--test命令的使用的主要内容,如果未能解决你的问题,请参考以下文章

Linux的Shell编程基础(下)--printf 命令/test 命令/流程控制/函数/输入与输出重定向/文件包含

shell基础学习一

shell脚本基础命令学习

Shell基础学习 test命令

Shell 基础

Shell基础: