![bash 中 if 条件中的 -s 和 [[]] 是什么意思?](https://linux22.com/image/108653/bash%20%E4%B8%AD%20if%20%E6%9D%A1%E4%BB%B6%E4%B8%AD%E7%9A%84%20-s%20%E5%92%8C%20%5B%5B%5D%5D%20%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
if [[ -s log.txt ]];
-s 是什么意思?我知道 -z 意味着零大小的字符串。我找不到有关 -s 的任何文档。
写条件时,[]或[[]]是什么意思if
。我在没有 [] 或 [[]] 的情况下使用if
,效果很好。
答案1
测试-s
返回 true 如果
[...]如果文件存在并且大小大于零
bash
这在手册中以及实用程序的手册中都有记录test
(也可以编写测试if test -s file; then
)。
对于[ ... ]
和[[ ... ]]
,请参阅:Bash - 如果语法混乱
答案2
-s
文件:- 文件存在且大小大于零。
[[ ... ]] 部分允许使用运算符测试条件。将其视为 if 语句。在您的示例中,您使用的是-s
运算符,该运算符测试引用的文件是否不为空。