lov*_*nix 2 unix linux bash shell
[ -f /tmp/myfile.txt ] && echo "File exists" || echo "No such file"
Run Code Online (Sandbox Code Playgroud)
这是如何运作的?具体是评价&&和||.
&&并且||是控制操作符,用于根据先前命令的退出状态确定是否应执行以下命令.来自man (1) bash:
控制运算符&&和|| 分别表示AND列表和OR列表.AND列表具有表单
Run Code Online (Sandbox Code Playgroud)command1 && command2当且仅当command1返回退出状态为零时,才执行command2.
OR列表具有表单
Run Code Online (Sandbox Code Playgroud)command1 || command2当且仅当command1返回非零退出状态时才执行command2.AND和OR列表的返回状态是列表中执行的最后一个命令的退出状态.
[,或者test,如果命令通过测试,则返回零退出状态.来自help test:
test:test [expr]根据EXPR的评估退出状态为0(真)或1(假).
所以,当你这样做
[ -f /tmp/myfile.txt ] && echo foo || echo bar
Run Code Online (Sandbox Code Playgroud)
你真正说的是(请仔细阅读)如果文件存在,请回显foo.如果文件不存在或echo foo命令失败,则回显栏.
这是这些控制操作符和if…then命令之间的微妙但重要的区别.
| 归档时间: |
|
| 查看次数: |
2508 次 |
| 最近记录: |