Linux基础教程(二十)Shell test 命令:别再if [ -f ]了!Linux test命令:Shell脚本中的“元芳,你怎么看?”

深度分析LINUX test命令

第一章:相遇——那个隐藏在方括号里的“侦探”

各位脚本玩家、运维侠客们,请想象一个场景:你写了一个自动部署脚本,它需要先检查一个关键配置文件是否存在,如果存在才继续执行。你会怎么做?

你大概率会写出这样的代码:

if [ -f /etc/super-app/config.conf ]; then
    echo "配置文件存在,开始部署!"
    # ... 部署操作
fi

是不是非常眼熟?但你是否曾有过一丝好奇:那个神秘的方括号 [ ] 到底是什么?它为什么能做出判断?为什么括号两边必须要有空格?

现在,揭晓答案:[ 本质上是一个命令! 它其实是 test 命令的另一种形式。是的,你没看错。在Linux中,test[ 是同一个东西,只是 [ 命令要求它的最后一个参数必须是 ],这是一种语法上的优雅伪装。

所以,上面那段代码完全可以写成:

if test -f /etc/super-app/config.conf; then
    echo "配置文件存在,开始部署!"
fi

两种写法完全等效。[ ] 更像是给 test 命令穿上了“吉利服”,让它更好地融入 ifwhile 这些语句中,看起来更符合我们的逻辑直觉。本章,我们就将揭开这位“伪装者”的全部技能。

第二章:办案手册——test侦探的三大侦查领域

test侦探的业务能力主要覆盖三大领域:文件侦查、字符串审讯和数值比对。它的办案手册(man page)里写满了各种“暗号”(参数)。

1. 文件侦查(File Investigations)

这是test命令最常用的技能之一。它能告诉你关于文件的一切你想知道的信息。

-e FILE:侦探基础问话:“元芳(文件),你存在吗?” 只要文件存在(无论类型),就返回真。

  • bash复制下载test -e /any/path/file.txt && echo "存在!" || echo "不存在!"

-f FILE:甄别身份:“你是正规军(普通文件)吗?” 只有是普通文件(非目录、链接等)才返回真。

  • bash复制下载[ -f /home/u
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值