Shell脚本编程:表达式组合、输入读取与交互设计
1. 表达式组合
在shell脚本编程中, test 和 [[ ]] 功能大致相同,但使用场景有所区别。 test 是传统的测试命令,是POSIX标准shell规范的一部分,常用于运行系统启动脚本。而 [[ ]] 是bash(以及其他一些现代shell)特有的。虽然 test 使用广泛,掌握它很重要,但 [[ ]] 更实用且编码更简单,因此在现代脚本中更受青睐。
2. 可移植性的思考
一些Unix用户认为所有脚本都应具有“可移植性”,即脚本应能在任何类Unix系统上无需修改即可运行。这是因为在POSIX出现之前,命令和shell的专有扩展给Unix世界带来了混乱,所以他们对Linux对其喜爱的操作系统的影响持谨慎态度。
然而,可移植性也有严重的缺点,它会阻碍进步,要求使用“最低公分母”技术。在shell编程中,这意味着要使一切与原始的Bourne shell(sh)兼容。一些专有软件供应商利用这一缺点,将其专有扩展称为“创新”,实际上是为了锁定客户。
GNU工具(如bash)则没有这些限制,它们通过支持标准和广泛可用性来鼓励可移植性。可以免费在几乎任何系统(甚至Windows)上安装bash和其他GNU工具,所以可以放心使用bash的所有特性,它实际上是具有可移植性的。
3. 控制运算符:另一种分支方式
bash提供了两个可用于分支的控制运算符: &a
Shell脚本交互与表达式详解
超级会员免费看
订阅专栏 解锁全文
94

被折叠的 条评论
为什么被折叠?



