Diferentes maneiras de usar o comando expr [closed]

0

Estou tentando aprender o comando bash expr por dentro e por fora. Quais são algumas das formas mais básicas para as maneiras mais criativas / complicadas / inesperadas de usar o comando expr? Exemplos pequenos e gerenciáveis são ótimos.

    
por Charlotte 01.12.2011 / 01:40

1 resposta

1

Eu usei principalmente expr para sua correspondência de expressão regular. Às vezes, é mais descritivo do que sed ou grep :

if expr "$value" : '.*bar$' >/dev/null; then ...

Em comparação com:

if echo "$value" | grep '.*bar$' >/dev/null; then ...

Ou:

name='expr "$filename" : '.*/\(.*\)\.[^.]*$''

Em comparação com:

name='echo "$filename" | sed 's!.*/\(.*\)\.[^.]*$//''

Eles são funcionalmente equivalentes, mas a expr foi ligeiramente mais rápida. Especialmente nos dias mais antigos, quando algumas conchas tinham como um builtin (DEC Ultrix, por exemplo).

Além disso, eu programo na sintaxe estrita do shell Bourne, então eu ainda uso expr para aritmática básica, por exemplo:

count=0
while [ $count -lt 10 ]; do
    # something
    count='expr $count + 1'
done
    
por 01.12.2011 / 02:23