Potresti condividere la parte dello script che non funziona su Mac OS X? expr
in generale aderisce a IEEE Std 1003.1-2008 (POSIX.1)
ed è disponibile su tutti i sistemi Unix con la stessa semantica.
Se condividi qualche altra informazione riguardante il tuo script bash, sono certo che possiamo aiutarti. Il tuo esempio pubblicato di expr length
, sebbene sia di per sé abbastanza inutile, funziona perfettamente bene nella mia shell Mavericks di Mac OS X:
~$ expr length
length
Non sei sicuro di ciò che hai cercato di ottenere, ma potrei immaginare che stavi cercando di ottenere la lunghezza di una stringa?
~$ a="non sequitur"
~$ expr \( "X$a" : ".*" \) - 1
12
~$ echo ${#a}
12
Per quanto riguarda la multipiattaforma, dipende molto da ciò che stai cercando di realizzare con il tuo script bash. Bash di per sé è piuttosto multipiattaforma.