bourne shell 中带括号和不带括号的 if 语句有什么区别?
例如:
if $input = 'y'
原因
./test.sh:第 5 行:y:找不到命令
而
if [ $tmp = 'y' ]
不会导致错误?
无法计算条件的 if 语句的目的是什么?
For instance:
if $input = 'y'
causes
./test.sh: line 5: y: command not found
While
if [ $tmp = 'y' ]
causes no error?
What is the purpose of an if statement that cannot evaluate conditions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
if
不评估任何内容。它只是执行谓词程序并对其返回代码进行操作。[
实际上是一个执行一些条件并返回适当的返回代码的程序。如果不需要
else
分支,[
可以与不带 if 的 oneliner 一起使用:if
doesn't evaluate anything. It simply executes the predicate program and acts on its return code.[
is actually a program that does a handful of conditions, and returns an appropriate return code.[
can be used with oneliners without if, if you don't need theelse
branch: