fbpx

Comandos Linux – Comando expr

Comando expr do Linux

Atualizado: 05/04/2019 por Computer Hope

comando expr

Em sistemas operacionais do tipo Unix, o comando expr avalia argumentos como uma expressão .

Este documento cobre a versão GNU / Linux do expr .

Sintaxe

  expr EXPRESSÃO
  expr OPÇÃO

Opções

–SocorroExiba uma mensagem de ajuda e saia.
–versãoExibir informações da versão e sair.

Expressões

expr imprime o valor de EXPRESSION na saída padrão. Uma linha em branco abaixo separa grupos de precedência crescentes.

EXPRESSÃO pode ser:

ARG1 ARG2ARG1 se não for nulo nem 0, caso contrário, ARG2 .
ARG1 & ARG2ARG1 se nenhum argumento for nulo ou 0, caso contrário, 0.
ARG1 < ARG2ARG1 é menor que ARG2 .
ARG1 <= ARG2ARG1 é menor ou igual a ARG2 .
ARG1 = ARG2ARG1 é igual a ARG2 .
ARG1 ! = ARG2ARG1 é desigual ao ARG2 .
ARG1 > = ARG2ARG1 é maior ou igual a ARG2 .
ARG1 > ARG2ARG1 é maior que ARG2 .
ARG1 + ARG2soma aritmética de ARG1 e ARG2 .
ARG1  ARG2diferença aritmética de ARG1 e ARG2 .
ARG1 * ARG2produto aritmético de ARG1 e ARG2 .
ARG1 / ARG2quociente aritmético de ARG1 dividido por ARG2 .
ARG1 % ARG2restante aritmético de ARG1 dividido por ARG2 .
STRING : REGEXPcorrespondência de padrão ancorado da expressão regular REGEXP em STRING .
corresponder a STRING REGEXPo mesmo que STRING : REGEXP .
substr COMPRIMENTO DA POSIÇÃO STRINGsubstring de STRING , POS contado de 1.
índice STRING CHARSíndice em STRING onde qualquer CHARS é encontrado ou 0 .
comprimento STRINGcomprimento de STRING .
+ TOKENinterprete TOKEN como uma string, mesmo que seja uma palavra-chave como ‘ match ‘ ou um operador como ‘ / ‘.
( EXPRESSÃO )valor de EXPRESSÃO .

Notas sobre o uso

  • Esteja ciente de que muitos operadores precisam ser escapados ou citados para serem interpretados corretamente por shellsSS .
  • As comparações são aritméticas se os dois ARGs são números, caso contrário, as comparações são lexicográficas.
  • As correspondências de padrões retornam a string correspondida entre \ ( e \) ou nula; se \ ( e \) não forem usados, eles retornarão o número de caracteres correspondentes ou 0.
  • O status de saída é 0 se EXPRESSION não for nulo nem 0, 1 se EXPRESSION for nulo ou 0, 2 se EXPRESSION for sintaticamente inválido e 3 se ocorrer um erro.

Exemplos

  expr texto: '. *'

Executa uma correspondência de expressão regular. A expressão regular após os dois pontos é correspondida ao texto antes dos dois pontos. A saída retornada é o número de caracteres correspondentes. Aqui, a expressão regular ‘. *’ Representa “qualquer número de qualquer caractere”, portanto, o resultado é:

  4
  texto expr: tex

Retorna o número de caracteres da expressão regular após os dois pontos que aparecem no texto antes dos dois pontos. Aqui, a expressão regular ‘tex’ representa “exatamente os caracteres consecutivos t , eex “, portanto a saída seria:

  3
  expr texto: '\ (. * \)'

Aqui, a expressão regular ‘\ (. * \)’ Representa “O texto real (o que aparecer entre parênteses, escapado com barras invertidas) que corresponde ao padrão . * , Que representa qualquer número de qualquer caractere.” Combinado com o texto do texto , isso retorna a string exatamente:

  texto
  expr 5 = 5

Retorna 1 (verdadeiro) se as expressões forem equivalentes ou 0 (falso) se não forem. Aqui, os valores 5 e 5 são iguais e, portanto, equivalentes , portanto a saída será:

  1
  expr '5' = '5'

Aqui, duas cadeias estão sendo comparadas para equivalência. Se as seqüências corresponderem exatamente, caractere por caractere, o resultado será 1 (verdadeiro). Caso contrário, o resultado será 0 . Aqui, o resultado é:

  1
  expr 5 \> 10

Aqui, o resultado é 1 (verdadeiro) se 5 for menor que 10 , caso contrário, o resultado será 0 . O símbolo “menor que” (” < “) é precedido por uma barra invertida (” \ “) para protegê-lo do shell, que de outra forma o interpretaria como um operador de redirecionamento . Neste exemplo, 5 não é maior que 10 , portanto, a saída é:

  0 0
  expr 5 \! = 5

Assim como o operador = testa a equivalência, o operador ! = Testa a não equivalência. Se os dois valores que estão sendo testados não forem equivalentes, o resultado será verdadeiro ( 1 ), caso contrário, o resultado será falso ( 0 ). 5 é equivalente a 5 , então o resultado é falso:

  0 0
  expr 5 \! = "5"

“Equivalência” não é o mesmo que “igualdade”. 5 é um número e “5” é uma sequência, portanto tecnicamente eles não são “iguais”, mas expr os considera equivalentes porque lê a sequência para seu conteúdo, vê que é um número e usa o valor desse número na comparação. Portanto, o valor 5 é equivalente a uma sequência que contém o número “5” . Portanto, a resposta aqui é falsa; eles não são não equivalentes:

  0 0

Este próximo exemplo mostrará, em uma série de comandos, como o expr pode ser usado para aumentar o valor de uma variável.

Se definirmos uma variável chamada count , defina-a como zero:

  count = 0

… podemos gerar o valor dessa variável com o comando echo :

  eco $ count
  0 0

… agora podemos incrementá-lo configurando-o para o valor de uma avaliação expr , que retorna o valor da variável, mais um:

  count = `expr $ count + 1`

… e podemos verificar o valor atualizado com outro eco :

  eco $ count
  1

basename – retira as informações do diretório e os sufixos dos nomes de arquivos.
ed – Um simples editor de texto.
sh – O interpretador de comandos do Bourne shell.

18 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.