2016-06-08 286 views
1

类Unix系统中的$(())expr之间的主要区别是什么?

+1

@andlrc这根本不相关。 – 123

+1

'$(())'用于bash算术。 expr用于评估表达式,这可以是算术或字符串。查看'$(())'的bash手册页,'expr'手册页会告诉你两个命令都可以做的所有事情。 – 123

+0

不只是bash算术。 $(())'自1991年发布以来一直在POSIX sh规范中。 –

回答

2

$(())几乎肯定会在您正在使用的shell中。 expr可能是一个外部电话

+0

POSIX呢? – SuckLips

+0

两者都由POSIX指定。你可能会构造一个场景,它使用一个命令而不是内置的语法进行算术运算,但大部分'$((...))'已经替换了除expr之外的所有正则表达式。 – chepner

0

expr是从Bourne壳早期保留。您应该避免使用expr,除非您被迫创建需要与传统(POSIX前)sh实现进行互操作的脚本。 (因为例如Solaris sh属于这个类别,所以不会太早。)

相关问题