bash 中 if 条件中的 -s 和 [[]] 是什么意思?

bash 中 if 条件中的 -s 和 [[]] 是什么意思?

if [[ -s log.txt ]];

-s 是什么意思?我知道 -z 意味着零大小的字符串。我找不到有关 -s 的任何文档。

写条件时,[]或[[]]是什么意思if。我在没有 [] 或 [[]] 的情况下使用if,效果很好。

答案1

测试-s返回 true 如果

[...]如果文件存在并且大小大于零

bash这在手册中以及实用程序的手册中都有记录test(也可以编写测试if test -s file; then)。

对于[ ... ][[ ... ]],请参阅:Bash - 如果语法混乱

答案2

-s文件:- 文件存在且大小大于零。

[[ ... ]] 部分允许使用运算符测试条件。将其视为 if 语句。在您的示例中,您使用的是-s运算符,该运算符测试引用的文件是否不为空。

相关内容