Alternativa multiplataforma a expr length

0

Al ejecutar algunos scripts BASH que tenía en mi caja de Linux, noté que expr length da un error de sintaxis.

Las páginas de manual no parecen incluir ninguna información sobre el operador de longitud. ¿Falta en Mac OS X?

¿Qué otra alternativa multiplataforma puedo usar?

    
pregunta jviotti 28.10.2013 - 14:50

2 respuestas

3

En lugar de expr length 'keyword' puedes usar awk. Un ejemplo se vería así echo 'keyword' | awk '{ print length }'

bounty:~ napcae$ echo 'keyword' | awk '{ print length }'  
7
    
respondido por el napcae 28.10.2013 - 15:02
0

¿Podría compartir la parte del script que no funciona en su Mac OS X? En general, expr se adhiere a IEEE Std 1003.1-2008 (POSIX.1) y está disponible en todos los sistemas Unix con la misma semántica.

Si compartes más información sobre tu script de bash, estoy seguro de que podemos ayudarte. El ejemplo publicado de expr length , aunque es bastante inútil en sí mismo, funciona perfectamente en mi Mac OS X Mavericks Shell:

~$ expr length
length

No estoy seguro de lo que has intentado lograr, pero ¿puedo imaginar que intentas obtener la longitud de una cadena?

~$ a="non sequitur"
~$ expr \( "X$a" : ".*" \) - 1
12
~$ echo ${#a}
12

Con respecto a la multiplataforma, realmente depende de lo que está intentando lograr con su script de bash. Bash por sí mismo es bastante multiplataforma.

    
respondido por el Moreaki 28.10.2013 - 15:08

Lea otras preguntas en las etiquetas