#01. O que é script Bash?
O script bash é uma linguagem de programação de shell. Geralmente, executamos muitos tipos de comandos de shell do terminal digitando cada comando separadamente que requerem tempo e esforços. Se precisarmos executar os mesmos comandos novamente, precisamos executar todos os comandos do terminal novamente. Mas, usando um script Bash, podemos armazenar muitas declarações de comando do Shell em um único arquivo Bash e executar o arquivo a qualquer momento por um único comando. Muitas tarefas relacionadas à administração do sistema, instalação do programa, backup de disco, avaliação de logs, etc. pode ser feito usando o script Bash adequado.
#02. Quais são as vantagens de usar scripts de bash?
O script bash tem muitas vantagens descritas abaixo:
#03. Mencionar as desvantagens dos scripts de bash
Algumas desvantagens do script bash são mencionadas abaixo:
#04. Que tipos de variáveis são usados no Bash?
Dois tipos de variáveis podem ser usados no script bash. Estes são:
Variáveis do sistema
As variáveis que são predefinidas e mantidas pelo sistema operacional Linux são chamadas de variáveis do sistema. Esses tipos de variáveis são sempre usados por uma letra de maiúsculas. Os valores padrão dessas variáveis podem ser alterados com base nos requisitos.
'Set', 'Env' e 'PrintenvOs comandos podem ser usados para imprimir a lista de variáveis do sistema.
Exemplo:
#!/BIN/BASH
# Variáveis do sistema de impressão
#Print Bash Nome da concha
eco $ bash
# Imprimir versão shell bash shell
echo $ Bash_version
# Nome do diretório da impressão
eco $ em casa
Variável definida pelo usuário
As variáveis criadas e mantidas pelos usuários são chamadas de variáveis definidas pelo usuário. Eles também são chamados de variáveis locais. Esses tipos de variáveis podem ser declarados usando letras minúsculas ou maiúsculas ou as letras maiúsculas e minúsculas. Mas é melhor evitar o uso de todas as letas da mancha para diferenciar as variáveis das variáveis do sistema.
Exemplo:
#!/BIN/BASH
num = 100
eco $ num
#05. Como declarar e excluir variáveis em bash?
A variável pode ser declarada em Bash por tipo de dados ou sem tipo de dados. Se alguma variável bash for declarada sem declarar comando, então a variável será tratada como uma string. A variável bash é declarada com declarar comando para definir o tipo de dados da variável na declaração de tempo.
-r, -i, -a, -a, -l, -u, -t e -x As opções podem ser usadas com declarar comando para declarar uma variável com diferentes tipos de dados.
Exemplo:
#!/BIN/BASH
Variável #Declare sem qualquer tipo
num = 10
#Values serão combinados, mas não adicionados
resultado = $ num+20
eco $ resultado
Variável #Declare com tipo inteiro
declarar -i num = 10
#Values serão adicionados
declarar -i resultado = num+20
eco $ resultado
desmembrado O comando é usado para remover qualquer variável bash. A variável será inacessível ou indefinida após o uso desmembrado comando.
Exemplo:
#!/BIN/BASH
str = "Linux Dica"
eco $ str
Unset $ str
eco $ str
#06. Como adicionar comentários em um script bash?
Comentários de linha única e multi-line podem ser usados no script bash. '#'Símbolo é usado para comentário de linha única. '<<' símbolo com um delimitador e ':' com único (') são usados para adicionar comentários de várias linhas.
Exemplo:
#!/BIN/BASH
#Print O texto [comentário de linha única]
eco "Programação Bash"
<Calcule a soma
De dois números [comentário multilina]
adicionar comentário
num = 25+35
eco $ num
: '
Combine dois
Dados da string [Comentário de Multilina]
'
String = "Hello"
eco $ string "mundo"
#07. Como você pode combinar strings em um script de festa?
Os valores de string podem ser combinados em Bash de maneiras diferentes. Normalmente, os valores de string são combinados colocando juntos, mas existem outras maneiras no Bash para combinar dados de string.
Exemplo:
#!/BIN/BASH
#Initialize as variáveis
str1 = "php"
STR2 = "BASH"
str3 = "perl"
# Print String junto com o espaço
echo $ str1 $ str2 $ str3
#Combine todas as variáveis e armazenar em outra variável
str = "$ str1, $ str2 e $ str3"
#Combine outros dados da string com o valor existente da string
str+= "são linguagens de script"
#Print the string
eco $ str
#08. Quais comandos são usados para imprimir a saída em bash?
'eco' e 'printf' Os comandos podem ser usados para imprimir a saída em bash. 'eco'O comando é usado para imprimir a saída simples e 'printf' O comando é usado para imprimir a saída formatada.
Exemplo:
#!/BIN/BASH
#Print the text
eco "Bem -vindo ao Linuxhint"
Site = "Linuxhint.com "
#Print O texto formatado
printf "%s é um site popular de blog \ n" $ site
#09. Como obter informações do terminal em Bash?
'ler' O comando é usado em um script bash para obter a entrada do terminal.
Exemplo:
#!/BIN/BASH
#Print mensagem
eco "digite seu nome"
#Tire a entrada do usuário
Leia o nome
# Imprima o valor de $ nome com outra string
eco "Seu nome é $ nome"
#10. Como usar argumentos de linha de comando em bash?
Os argumentos da linha de comando são lidos por $ 1, $ 2, $ 3… $ n variáveis. Os valores de argumento da linha de comando são fornecidos no terminal ao executar o script bash. $ 1 é usado para ler o primeiro argumento, $ 2 é usado para ler o segundo argumento e assim por diante.
Exemplo:
#!/BIN/BASH
#Verifique qualquer argumento é fornecido ou não
se [[$# -EQ 0]; então
eco "nenhum argumento é dado."
saída 0
fi
#Store o primeiro valor de argumento
cor = $ 1
# Imprima o argumento com outra string
printf "Sua cor favorita é %s \ n" $ color
#11. É uma linguagem fracamente digitada? Por que?
Sim, o Bash é considerado uma linguagem fraca ou vagamente digitada, porque não exige para declarar o tipo de dados no momento da declaração variável. Todas as variáveis bash são tratadas como uma string por padrão e o tipo de variável será definido com base no valor atual. Variáveis de batida com tipos de dados podem ser definidas usando declarar comando com uma opção específica. Mas as opções para definir tipos de dados são limitadas e não suportam todos os tipos de dados. Por exemplo, flutuador O tipo de dados não pode ser declarado usando declarar comando.
Exemplo:
#!/BIN/BASH
#O tipo de dados de $ myvar é string por padrão
myvar = 29
# Imprima a variável
eco $ myvar
# Declare o número da variável inteira com o valor 67
declarar -i número = 67
#Print The Variable
eco $ número
# Atribua dados da string à variável numérica. A linha a seguir gerará
# erro de sintaxe e o valor do número de $ não alterarão
número = "Eu gosto de Bash"
eco $ número
#12. Como ler a segunda palavra ou coluna de cada linha de um arquivo?
A segunda palavra ou coluna de um arquivo pode ser lida em um script de bash usando diferentes comandos bash facilmente, como 'awk', 'sed' etc. Aqui, o uso de 'Awk' é mostrado no exemplo a seguir.
Exemplo: Suponha, claro.O arquivo txt contém o seguinte conteúdo e imprimimos apenas a segunda palavra de cada linha deste arquivo.
#!/BIN/BASH
# O script a seguir imprimirá a segunda palavra de cada linha do curso.arquivo txt.
# A saída do comando CAT passará para o comando AWK que lerá a segunda palavra
# de cada linha.
Curso de gato eco.txt | awk 'print $ 2' '
#13. Como declarar e acessar uma variável de matriz no Bash?
As matrizes numéricas e associativas são suportadas por um script de bash. Uma variável de matriz pode ser declarada com e sem declarar comando. -a a opção é usada com o comando declarar para definir uma matriz numérica e -A A opção é usada com declaração de declaração para definir uma matriz associativa em Bash. Sem o comando declarar, a matriz numérica pode ser definida apenas em Bash.
Exemplo:
#!/BIN/BASH
# Declare uma matriz numérica simples
arr1 = (codeigniter laravel reactjs)
# Imprima o primeiro valor do elemento de $ ARR1
eco $ arr1 [0]
# Declare uma matriz numérica usando o comando declarar
declarar -a ar2 = (html css javascript)
# Imprima o segundo valor do elemento de $ ARR2
eco $ arr2 [1]
# Declare uma matriz associativa usando declaração de declaração
declarar -a ar3 = ([estrutura] = laravel [cms] = wordpress [biblioteca] = jQuery)
# Imprima o terceiro valor do elemento de $ ARR3
eco $ ARR3 [Biblioteca]
Todos os elementos de uma matriz podem ser acessados usando qualquer símbolo de loop ou '*' como um índice de matriz.
#14. Como as declarações condicionais podem ser usadas no Bash?
A declaração condicional mais comum na maioria das linguagens de programação é o if-elseif-else declaração. A sintaxe de if-elseif-else A declaração em Bash é um pouco diferente de outras linguagens de programação. 'Se' A declaração pode ser declarada de duas maneiras em um script de bash e todo tipo de 'se' O bloco deve ser fechado com 'fi'. 'se' A declaração pode ser definida por terceiros colchetes ou primeiros colchetes, como outras linguagens de programação.
Sintaxe:
A.
B.
se [condição]; entãoC.
se [condição]; entãoExemplo:
#!/BIN/BASH
# Atribua um valor a $ n
n = 30
# Cheque $ n é maior que 100 ou não
se [$ n -GT 100]; então
eco "$ n é menor que 100"
# Cheque $ n id maiores que 50 ou não
Elif [$ n -GT 50]; então
eco "$ n é menor que 50"
outro
eco "$ n é menor que 50"
fi
#15. Como comparar valores em bash?
Seis tipos de operadores de comparação podem ser usados no Bash para comparar valores. Existem duas maneiras de usar esses operadores em bash, dependendo do tipo de dados. Estes são mencionados abaixo.
Comparação de string | Inteiro Comarison | Descrição |
== | -Eq | É usado para verificar a igualdade |
!= | -ne | É usado para verificar a desigualdade |
< | -lt | É usado verifique o primeiro valor é menor que o segundo valor ou não |
> | -gt | É usado verifique o primeiro valor é maior que o segundo valor ou não |
<= | -le | É usado verifique se o primeiro valor é menor ou igual ao segundo valor ou não |
> = | -ge | É usado, verifique o primeiro valor é maior ou igual ao segundo valor ou não |
Exemplo:
#!/BIN/BASH
# Inicialize $ n
n = 130
o = "até"
# Verificação $ n é maior ou igual a 100 ou não usando '-ge'.
se [$ n -ge 100]; então
eco "$ n é maior ou igual a 100"
outro
eco "$ n é menor que 100"
fi
# Cheque $ n é par ou ímpar usando '==' operador
if (($ o == "par")); então
eco "o número é mesmo"
outro
eco "o número é estranho"
fi
#16. Qual declaração condicional pode ser usada como uma alternativa às declarações if-elseif-else em bash?
'caso' A declaração pode ser usada como um TP alternativo if-elseif-if declaração. A sintaxe para 'caso' A declaração em scripts de bash é diferente do Switch-case Declaração de outras linguagens de programação. 'caso' O bloco é fechado por 'ESAC' Declaração em Bash. Não 'quebrar'Declaração é usada dentro'caso'Bloco para terminar a partir do bloco.
Sintaxe:
Caso em
Padrão de correspondência 1) comandos ;;
Padrão de correspondência 2) comandos ;;
..
Match Pattern n) comandos ;;
ESAC
Exemplo:
#!/BIN/BASH
#Initialize a variável $ ticket
Ticket = 101
# Compare o valor de $ ticket com 23, 101 e 503
Caso $ ticket in
23)
# Mensagem de impressão se o valor for 23
eco "você recebeu o primeiro prêmio" ;;
101)
# Mensagem de impressão se o valor for 101
eco "você recebeu o segundo prêmio" ;;
503)
# Mensagem de impressão se o valor for 503
eco "você tem o terceiro prêmio" ;;
*)
# Mensagem de imprimir se o valor não corresponde aos 23, 101 e 503
eco "desculpe, tente a próxima vez"
saída 0 ;;
ESAC
#17. Que diferentes tipos de loops podem ser usados no Bash?
Três tipos de loops são suportados por um script bash. Estes são enquanto, para e até rotações. Loops in Bash verifique a condição no início do loop. Enquanto Loop funciona até que a condição permaneça verdadeira e até Loop funciona até que a condição permaneça falsa. Existem duas maneiras de usar para laço. Um é geral para loop que contém três partes e outro é para-in laço. Os usos desses três loops são mostrados no exemplo a seguir.
Exemplo:
#!/BIN/BASH
# Inicialize $ n
n = 5
# Calcule o quadrado de 5-1 usando o loop enquanto
enquanto [$ n -gt 0]
fazer
sqr = $ ((n*n))
eco "O quadrado de $ n é $ sqr"
((n--))
feito
# Calcule o quadrado de 5-1 usando o loop
para ((i = 5; i> 0; i--))
fazer
sqr = $ ((i*i))
eco "o quadrado de $ i é $ sqr"
feito
# Inicialize $ x
x = 5
# Calcule o quadrado de 5-1 usando até o loop
até [$ x -le 0]
fazer
sqr = $ ((x*x))
eco "O quadrado de $ x é $ sqr"
((x--))
feito
#18. Como as sub -rotinas podem ser declaradas e chamadas em bash?
Em Bash, uma função ou procedimento é chamado de sub -rotina. A declaração e o chamado de uma sub -rotina em Bash são diferentes de outros idiomas. Nenhum argumento pode ser declarado em sub -rotinas, diferentemente de outras linguagens de programação padrão. Mas variáveis locais podem ser definidas dentro da sub -rotina usando o 'local' palavra -chave.
Exemplo:
#!/BIN/BASH
# Inicialize a variável $ x e $ y que são globais
x = 10
y = 35
# Declare a função
myfunc ()
# Declare a variável local $ x
Local x = 15
# Assine a variável global $ y
y = 25
# Calcule a soma de $ x e $ y
z = $ ((x+y))
# Imprima a soma de uma variável local, $ x e variável global, $ y
eco "a soma de $ x e $ y igual a $ z"
# Ligue para a função
myfunc
# Imprima a soma das variáveis globais, $ x e $ y
eco "a soma de $ x e $ y igual a $ z"
#19. Como cortar e imprimir parte de uma parte de dados de string em bash?
Bash não tem função interna como outros idiomas para cortar parte dos dados da string. Mas usando a expansão dos parâmetros, qualquer valor de string pode ser cortado em bash. Três partes podem ser definidas na expansão dos parâmetros, separando -se com um cólon para cortar qualquer parte dos dados da string. Aqui, as duas primeiras partes são obrigatórias e a última parte é opcional. A primeira parte contém a variável de sequência principal que será usada para cortar, a segunda parte é a posição inicial de onde a string será cortada e a terceira parte é o comprimento da corda de corte. A posição inicial deve ser contada a partir de 0 e o comprimento deve ser contado de 1 da sequência principal para recuperar o valor de corte.
Exemplo:
#!/BIN/BASH
# Inicialize um valor de string em $ string
String = "Linguagem de script python"
# Corte o valor da string da posição 7 até o final da string
echo $ string: 7
# Corte o valor da string de 9 caracteres da posição 7
eco $ string: 7: 9
# Corte o valor da string de 17 a 20
echo $ string: 17: -4
#20. Mencione algumas maneiras de executar operações aritméticas em bash?
Operações aritméticas podem ser feitas de várias maneiras em Bash. 'Let', 'Expr', 'BC' e Suportes duplos são as maneiras mais comuns de executar operações aritméticas em bash. Os usos desses comandos são mostrados no exemplo a seguir.
Exemplo:
#!/BIN/BASH
# Calculando a subtração usando Expr e expansão de parâmetros
var1 = $ (expr 120 - 100)
# Imprima o resultado
eco $ var1
# Calcule a adição usando o comando Let
Deixe var2 = 200+300
# Imprima o RSULT
eco $ var2
# Calcule e imprima o valor da divisão usando 'BC' para obter o resultado
# com valor fracionário
eco "escala = 2; 44/7" | bc
# Calcule o valor da multiplicação usando suportes duplos
var3 = $ ((5*3))
# Imprima o resultado
eco $ var3
#21. Como verificar um diretório existe ou não usando o Bash?
Bash tem muitos comandos de teste para verificar se existe um arquivo ou diretório ou não e o tipo de arquivo. '-d' A opção é usada com um caminho de diretório como uma declaração condicional para verificar se o diretório existe ou não em bash. Se o diretório existir, ele retornará verdadeiro, caso contrário, retornará falso.
Exemplo:
#!/BIN/BASH
# Atribua o diretório com caminho na variável, $ PATH
Path = "/Home/Ubuntu/Temp"
# Verifique se o diretório existe ou não
se [-d "$ path"]; então
# Mensagem de impressão se o diretório existir
eco "Diretório existe"
outro
# Mensagem de impressão se o diretório não existir
eco "diretório não existe"
fi
#22. Como um script de bash pode ser encerrado sem executar todas as declarações?
Usando 'saída' Comando, um script Bash pode ser encerrado sem executar todas as declarações. O script a seguir verificará se um determinado arquivo existe ou não. Se o arquivo existir, ele imprimirá o total de caracteres do arquivo e se o arquivo não existir, ele terá encerrar o script mostrando uma mensagem.
Exemplo:
#!/BIN/BASH
# Inicialize o nome do arquivo para a variável, $ FILENAME
FileName = "Curso.TXT"
# Verifique se o arquivo existe ou não usando -f opção
se [-f "$ filename"]; então
# Mensagem de impressão se o arquivo existir
eco "$ filename existe"
outro
# Mensagem de impressão se o arquivo não existir
eco "$ filename não existe"
# Encerrar o script
saída 1
fi
# Conte a duração do arquivo se o arquivo existir
comprimento = 'wc -c $ filename'
# Imprima o comprimento do arquivo
eco "caracteres totais - $ comprimento"
#23. Quais são os usos das declarações de quebra e continuação?
quebrar A declaração é usada para terminar de um loop sem concluir a iteração completa com base em uma condição e continuar A declaração é usada em um loop para omitir algumas declarações baseadas em uma condição. Os usos de quebrar e continuar As declarações são explicadas no exemplo a seguir.
Exemplo:
#!/BIN/BASH
# Inicialize a variável $ i a 0 para iniciar o loop
i = 0
# O loop irá itentar o fot 10 vezes
enquanto [$ i -le 10]
fazer
# Incremento o valor $ i por 1
((i ++))
# Se o valor de $ i é igual a 8, então encerre o loop usando a instrução 'Break'
se [$ i -eq 8]; então
quebrar;
fi
# Se o valor de $ i for maior que 6, omitir a última declaração do loop
# usando a instrução continua
se [$ i -ge 6]; então
continuar;
fi
eco "o valor atual de i = $ i"
feito
# Imprima o valor de $ i depois de terminar do loop
eco "agora o valor de i = $ i"
#24. Como fazer um arquivo Bash executável?
Arquivos Bash executáveis podem ser feitos usando 'chmod' comando. A permissão executável pode ser definida usando '+x' em chmod comando com o nome do arquivo de script. Os arquivos bash podem ser executados sem o explícito 'Bash' comando depois de definir o bit de execução para esse arquivo.
Exemplo:
# Defina o bit de execução
$ chmod +x nome do arquivo.sh
# Execute o arquivo executável
$ ./nome do arquivo.sh
#25. Mencione algumas opções usadas para testar arquivos
Muitas opções estão disponíveis no Bash To Test File. Algumas opções são mencionadas abaixo.
Opção | Descrição |
-f | É usado para testar o arquivo e é um arquivo regular. |
-e | É usado para testar apenas o arquivo existe. |
-r | É usado para testar o arquivo e tem permissão de leitura. |
-c | É usado para testar o arquivo e precisa escrever permissão. |
-x | É usado para testar o arquivo e tem permissão de execução. |
-d | É usado para testar o diretório existe. |
-eu | É usado para testar o arquivo e é um link simbólico. |
-S | É usado para testar o arquivo e é um soquete. |
-b | É usado para testar o arquivo é um dispositivo de bloco. |
-s | É usado para verificar se o arquivo não é de zero tamanhos. |
-nt | Ele costumava verificar o conteúdo do primeiro arquivo é mais recente que o segundo arquivo. Por exemplo, o arquivo1 -nt file2 indica que o arquivo1 é mais recente que o arquivo2. |
-ot | Ele costumava verificar o conteúdo do primeiro arquivo é mais antigo que o segundo arquivo. Por exemplo, FILE1 -OT FILE2 indica que o arquivo1 é mais antigo que o arquivo2. |
-ef | É usado para verificar se dois links rígidos se referem ao mesmo arquivo. Por exemplo, Flink1 -EF Flink2 indica que Flink1 e Flink2 são links rígidos e ambos se referem ao mesmo arquivo. |
#26. O que se entende por 'BC' e como esse comando pode ser usado no Bash?
A forma completa de 'BC' é Calculadora Bash para executar operações aritméticas com mais precisão em bash. A parte fracionária é omitida se alguma operação aritmética for feita em Bash usando 'Expr' comando. A parte fracionária também pode ser arredondada usando escala valor com 'BC' comando.
Exemplo:
#!/BIN/BASH
# Calcule a divisão sem o valor fracionário
eco "39/7" | bc
# Calcule a divisão com o valor fracionário completo
eco "39/7" | bc -l
# Calcule a divisão com três dígitos após o ponto decimal
eco "escala = 3; 39/7" | bc
#27. Como você pode imprimir uma linha específica de um arquivo em bash?
Existem muitas maneiras de imprimir uma linha específica em Bash. Como 'Awk', 'sed' e 'cauda' Os comandos podem ser usados para imprimir uma linha específica de um arquivo no bash é mostrada no exemplo a seguir.
Exemplo:
#!/BIN/BASH
# Leia e armazene a primeira linha do arquivo usando o comando 'awk' com a variável NR
linha1 = 'awk' if (nr == 1) imprimir $ 0 'curso.TXT'
# Imprima a linha
eco $ line1
# Leia a segunda linha do arquivo usando o comando 'sed' com -n opção
Linha2 = 'sed -n 2p Curso.TXT'
# Imprima a linha
eco $ line2
# Leia a última linha do arquivo usando o comando 'cauda' com -n opção
linha3 = 'cauda -n 1 curso.TXT'
# Imprima o arquivo
eco $ line3
#28. O que é ifs?
Ifs é uma variável de shell especial. A forma completa de Ifs é interno separador de campo,
Ele atua como delimitador para separar a palavra da linha de texto. É usado principalmente para dividir uma corda, ler um comando, substituir o texto etc.
Exemplo:
#!/BIN/BASH
# Declarar ':' como delimitador para dividir o texto
Ifs = ":"
# Atribua dados de texto com ':' a $ text
texto = "Vermelho: verde: azul"
# para loop lerá cada palavra depois de dividir o texto com base no IFS
para val em $ text; fazer
# Imprima a palavra
eco $ val
feito
#29. Como descobrir o comprimento de dados de uma string?
'expr', 'wc' e 'Awk' Os comandos podem ser usados para descobrir o comprimento de uma string de dados em bash. 'Expr' e 'Awk' comandos usam comprimento opção, 'Banheiro' Usos de comando '-C' opção para contar o comprimento da corda.
Exemplo:
Os usos dos comandos acima são mostrados no seguinte script.
#!/BIN/BASH
# Comprimento da contagem usando a opção de comprimento 'expr'
eco 'Expr comprimento "eu gosto de php"'
# Contagem de comprimento usando o comando 'wc'
eco "eu gosto de bash" | WC -C
# Contagem de comprimento usando o comando 'awk'
eco "eu gosto de python" | Awk 'Print Comning'
#30. Como executar vários scripts de bash em paralelo?
Vários scripts bash podem ser executados em paralelo usando nohup comando. Como vários arquivos Bash podem ser executados em paralelo a partir de uma pasta é mostrada no exemplo a seguir.
Exemplo:
# Atribua um nome de pasta com o caminho na variável $ dir que contém
# vários arquivos bash
Dir = "Home/Ubuntu/Temp"
# para loop lerá cada arquivo do diretório e executará em paralelo
Para script em dir/*.sh
fazer
Nohup Bash "$ script" e
feito
Conclusão:
As perguntas da entrevista de scripts mais básicas são descritas neste artigo para os leitores que desejam iniciar uma carreira como programador de bash.