在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”用于测试文件是否非空。
标签:Shell,echo,variable,字符串,filename,empty From: https://www.cnblogs.com/adam-ma/p/18125527