Suportes quadrados duplos [[]]
Os [[e]] são usados para expressões condicionais em bash. O [[é uma versão avançada dos colchetes quadrados únicos [] e é usado para correspondência de padrões, expressões regulares e expressões condicionais avançadas. O [[operador é mais poderoso que [e é preferido para muitos casos.
#!BIN/BASH
String = Linux
se [[$ String == "Linux"]]; então
eco "a string é Linux"
fi
No código a seguir, o operador de colchetes duplos é usado para verificar se o valor da variável $ string é igual à string "Linux":
Suportes quadrados únicos []
Os [e] são usados para expressões condicionais em Bash. Também é chamado de comando "teste". O operador de suportes quadrados únicos [também é usado para expressões condicionais, mas tem mais limitações do que [[. É útil para comparações e testes básicos, como a verificação se existir um arquivo ou se uma string estiver vazia.
#!BIN/BASH
# Defina o nome do arquivo para verificar
file = "/home/aaliyan/documents/Bashfile2.sh "
# Verifique se o arquivo existe
se [-f $ arquivo]; então
eco "o arquivo existe"
outro
eco "o arquivo não existe"
fi
Este script verifica se um arquivo chamado “Bashfile2.SH ”existe no respectivo diretório e, se o arquivo existir, ele imprime a mensagem“ O arquivo existe ”para o console, caso contrário, imprimirá“ o arquivo não existe ”:
Parênteses ()
O operador de parênteses (é usado para executar comandos em um ambiente de subshell. Isso significa que quaisquer alterações feitas no ambiente dentro dos parênteses não afetam o ambiente da concha pai.
#!BIN/BASH
# Alterar diretório para/home/user/diretório e listar seu conteúdo
(CD/Home/Aaliyan/Documents && LS)
No código a seguir, o operador de parênteses é usado para alterar o diretório para/home/aaliyan/documentos e executar o comando LS dentro de uma subshell:
Parênteses duplos (())
Os (e) são usados para avaliação aritmética e suporta recursos mais avançados do que o operador de parênteses únicos (, como operações bitwise, abaixo está um exemplo de script de bash que demonstra o uso de parênteses duplos:
#!BIN/BASH
# Defina os valores de A, B e C
a = 7
b = 9
c = 2
# Verifique se a soma de A e B é maior que C
if (($ a + $ b> $ c)); então
eco "A soma de A e B é maior que C"
fi
No código a seguir, o operador de parênteses duplos é usado para verificar se a soma das variáveis $ A e $ B é maior que o valor da variável $ C:
Para entender melhor as diferenças entre esses operadores, dei uma tabela que pode ajudá -lo a escrever um código bash mais eficiente e usar esses operadores de bash de maneira mais eficaz:
Operador | Propósito | Exemplo |
[[expressão]] | Expressões condicionais | se [[$ string == "Linux"]]; então eco |
[Expressão] | Expressões condicionais básicas | se [-f $ arquivo]; então ecoarem “o arquivo existe” |
(comando) | Executar comandos em um ambiente de subshell | (CD/Home/Usuário/Diretório && LS) |
((expressão)) | Operaçoes aritimeticas | if (($ a + $ b> $ c)); então eco |
Conclusão
Os operadores de bash [[]], [], () e (()) têm usos e sintaxe diferentes. O operador de duplo quadrado [[]] é usado para correspondência de padrões e comparação de strings, enquanto o operador único [] é usado para declarações condicionais e testes de arquivo. O operador parênteses () é usado para agrupar comandos e o operador duplo parênteses (()) é usado para avaliação aritmética. É importante usar o operador apropriado para a tarefa em questão para garantir que seus scripts bash sejam precisos e eficientes.