【发布时间】:2018-04-23 10:32:56
【问题描述】:
在这些日子里,我花了很多时间阅读各种关于脚本的文章和指南(主要是在 Bash 中)。最先出现的事情之一是,为了可移植性,最好的办法就是坚持使用 POSIX。
无论如何,我无法获得直接制作条件语句的标准方法......我想在这篇文章中忽略test,而是讨论[和[[。
我发现 [ 有点过时了,但每个 shell 都支持它(旧的作为 /bin/test/ 的别名,“新”作为 shell 本身的一部分)。
另一方面,我发现的几乎每个教程都使用[[,当被问及时,原因类似于“Bash 在大多数 Linux 发行版中是默认设置,所以它就像一个标准”。
当然,它们之间有很多不同之处,我个人发现[[ 更易于使用。
制作条件语句的标准方法是什么?如果没有定义标准方式:最好的方式是什么?我必须实现可移植性,而不是可读性或易用性......
关于“Bash 是事实上的标准”的立场是什么?将其用作标准而不仅仅是 POSIX 规则真的安全吗?
【问题讨论】:
标签: shell if-statement posix