Qual é o equivalente ZSH de 'expr'?

2

O utilitário expr avalia uma expressão e grava o resultado na saída padrão.

Qual é a maneira ZSH canônica de avaliar uma expressão e imprimir o resultado?

Solução:

Eu acredito que a resposta é usar eval:

Por exemplo:

% eval 'export FOO=baz'
% echo $FOO
baz

Também encontrei uma pergunta de superusuário semelhante "zsh run a command stored em uma variável? "

    
por bryan_basho 15.04.2014 / 12:19

1 resposta

5

Como expr é apenas um comando independente, ele pode ser usado com zsh da mesma forma que qualquer outro comando, embora muitos operadores precisem ser ignorados ou citados:

% expr 7 * 2
expr: syntax error
% expr 7 '*' 2
14
% expr 8 < 9
zsh: no such file or directory: 
% expr 8 \< 9
1

Se você quiser usar apenas o zsh builtins, não há uma alternativa única.

A maioria das expressões aritméticas pode ser manipulada com echo $(( exp ))

% echo $(( 7 * 2 ))
14
% echo $(( 8 < 9 ))
1

Algumas das operações de string podem ser substituídas por expansões de parâmetros. (Observe que expr conta posições de 1, enquanto zsh começa com 0)

% str='hello world'
% expr substr $str 4 5
lo wo
% echo ${str:3:5}
lo wo
% expr length $str
11
% echo $#str
11
    
por 15.04.2014 / 13:56

Tags