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”用于测试文件是否非空。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号