Compare string em Bash

Compare string em Bash

A necessidade de comparar strings em um script bash é relativamente comum e pode ser usada para verificar certas condições antes de prosseguir para a próxima parte de um script. Uma string pode ser qualquer sequência de caracteres. Para testar se duas cordas são iguais, ambas as seqüências devem conter exatamente os mesmos caracteres e na mesma ordem. Pode ser uma palavra ou uma frase inteira. Por exemplo, String um é igual a String um mas não é igual a String dois. Obtenha a ideia?

Neste guia, mostraremos como comparar strings no shell da batida em um sistema Linux. Mostraremos isso no contexto de um script simples se/else Bash para que você possa ver como os testes para essa condição funcionariam ao desenvolver scripts, mas também mostraremos como essa mesma comparação pode ser feita no terminal da linha de comando.

Neste tutorial, você aprenderá:

  • Como comparar strings em bash
  • Exemplo se/else Bash Scripts que comparam strings
Comparando strings em Bash Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Qualquer distro Linux
Programas N / D
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Compare se duas cordas são iguais

Você pode abrir um terminal em seu sistema e usar alguns desses exemplos para ter uma ideia de como os operadores de ataque funcionam quando se trata de comparar strings.

Você pode usar a seguinte sintaxe para comparar duas strings.

$ ["maçãs" = "maçãs"] $ echo $? 0 

O valor retornado de 0 significa verdadeiro. Em outras palavras, as cordas correspondem (como podemos ver claramente por nós mesmos).



Vamos tentar outro.

$ ["maçãs" = "laranjas"] $ echo $? 1 

Neste exemplo, Maçãs não é igual laranjas, Então, um valor de 1 (false) é devolvido. Exemplos mais complexos são melhor mostrados no contexto de scripts de bash, que cobrimos na próxima seção.

Exemplo Bash Scripts para comparar strings

Em um script bash, você normalmente estaria armazenando uma ou ambas as suas cordas como variáveis ​​antes de compará -las. Aqui está um exemplo simples.

#!/bin/Bash string1 = "Apples" string2 = "laranjas" se ["$ string1" = "$ string2"]; então eco "as duas cordas são iguais."caso contrário, eco", as duas cordas não são iguais."Fi
cópia de

A execução deste script produzirá a seguinte saída.

As duas cordas não são iguais. 

Mas = Não é o único operador disponível para nós. Também poderíamos testar para ver se duas cordas não são iguais com o != operador.

#!/Bin/Bash String1 = "Apples" String2 = "Larangees" Se ["$ String1" != "$ string2"]; Então eco "as cordas são diferentes.Strings "mais eco" não são diferentes."Fi
cópia de

A execução deste script produzirá a seguinte saída.

Strings são diferentes. 

Há também -z Para testar se o comprimento da string é 0 e -n Para testar se o comprimento da string é diferente de zero.

#!/bin/bash string = "" se [[-z $ string]]; então eco "a corda está vazia."else eco", a corda não está vazia."Fi
cópia de

A execução deste script produzirá a seguinte saída.

A corda está vazia. 

E o mesmo script com -n e uma string diferente de zero:



#!/Bin/Bash String = "Hello" se [-n $ string]]; então eco "a corda não está vazia."else eco", a corda está vazia."Fi
cópia de

A execução deste script produzirá a seguinte saída.

A corda não está vazia. 

Conclusão

Neste guia, vimos como comparar strings em bash, tanto da linha de comando quanto em scripts if/else Bash. Essa funcionalidade pode, é claro, ser estendida a scripts mais robustos que leem a entrada dos usuários ou usam o operador de caso, etc.

Estes são todos os métodos de comparação que você precisa para comparar strings em Bash. Ainda mais existem ao comparar números, como o -lt (menos que) e -gt (maior que) operadores. Mas cobrimos isso com mais detalhes em nosso guia de scripts de bash.

Tutoriais do Linux relacionados:

  • Script Bash: Exemplos de comparação de string
  • VIM Editor básico no Linux
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Mastering Bash Script Loops
  • Variáveis ​​de bash especiais com exemplos
  • Sistema Linux Hung? Como escapar para a linha de comando e…
  • Loops aninhados em scripts de basquete
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux