Shell的-n -z -s
在Shell脚本中,-n
和 -z
是用于条件测试的选项,它们通常出现在 test
命令或 [ ... ]
结构中,用来判断字符串是否为空。
-
-z STRING
:当字符串STRING
的长度为零(即字符串为空)时,表达式返回 true(真)。在条件语句中,你可以这样使用它来检查一个变量是否为空:if [ -z "$variable" ]; then echo "The variable is empty." fi
-
-n STRING
:当字符串STRING
的长度非零(即字符串不为空)时,表达式返回 true(真)。这个选项常被用来检查一个变量是否包含非空字符:if [ -n "$variable" ]; then echo "The variable is not empty." fi
总结来说,-z
用于检测空字符串,而 -n
用于检测非空字符串。在编写Shell脚本进行条件判断时,这两个选项非常实用。
在Shell脚本中,-s
参数一般用于检查文件是否存在且其大小不为0,也就是判断文件是否非空。例如:
if [ -s "$filename" ]; then
echo "File '$filename' is not empty."
else
echo "File '$filename' is either missing or empty."
fi
在这个上下文中,[ -s "$filename" ]
将会测试指定的文件名(存储在变量$filename
中)是否存在,并且如果文件包含至少一个字节的内容(即不是空文件),则条件判断为真(返回0退出状态),从而执行接下来的“then”部分的命令。
所以,简单来说,“-s”用于测试文件是否非空。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)