bash - 何时/如何决定何时在测试中使用括号
问题描述
我很难将我湿漉漉的小脑袋包裹在[
]
, 引用的 vars 和-eq
vs的各种用法上==
。
这些陈述之间有什么区别?是否像一个比另一个更符合posix一样简单,还是我应该担心功能上的差异?
[ ! -z "$var" ] && echo "Not empty" || echo "Empty"
[[ ! -z "$var" ]] && echo "Not empty" || echo "Empty"
那么:
if "$report" == "1"; then blah; fi
对比
if [ "$report" == "1" ]; then blah; fi
对比
[ "$report" -eq 1 ]; then blah
我知道这[
是 shell 中的一个测试功能,但我不明白什么时候需要开始if
或什么时候不需要。
解决方案
推荐阅读
- python - 如何解决 no module found Numpy 错误?
- javascript - 如何提交 d3.json 的 json 文件?
- angular - 如何在 Angular 应用程序中对 router.navigate 进行单元测试
- kubernetes - (重新)设置 k8 loadBalancerIP 分配的 IP 范围
- java - 包含地图的正确方法是什么
场地 - c - 如何解决无法正确运行图形 c 程序的代码块
- java - 如何修复exo播放器加载视频慢的问题
- javascript - 我必须点击搜索按钮两次才能从 api 获取数据
- php - Laravel Where 搜索查询
- android - 对 firebase 函数的调用永远不会成功