Por que Bash é útil e para quem é útil?
Se você deseja mais controle sobre o seu sistema operacional e deseja executar diferentes tarefas relacionadas ao sistema operacional, o Bash é o seu caminho para ir. Por Bash, não nos referimos apenas à linguagem de script, mas também às ferramentas que acompanham o sistema operacional Linux. Cada ferramenta no Linux tem seu trabalho e cada um executa uma tarefa diferente individualmente. Bash é realmente útil sempre que você precisa combinar todas essas ferramentas e encorrer -las de tal maneira que todos trabalhem em harmonia para realizar uma tarefa que é realmente difícil de fazer o contrário. Por exemplo, qualquer coisa que tenha algo a ver com o sistema operacional Linux também pode ser feito em outras linguagens de programação, como Python ou Perl, mas é muito difícil realizar diferentes tarefas relacionadas ao SO. Uma maneira simples, preta e branca e mais fácil de fazer qualquer coisa relativa ao Linux OS é usando o Bash. Para quem deseja executar tarefas que incluem as ferramentas do Linux OS (como LS, CD, CAT, Touch, Grep, etc.), é realmente útil para ele aprender Bash em vez de qualquer outra linguagem de programação.
Como o Bash se compara a outras linguagens de programação?
Se falarmos sobre Bash, sabemos que Bash não é uma linguagem de programação de uso geral, mas um intérprete de linha de comando. O Bash é realmente útil para executar tarefas em torno de diferentes ferramentas e processos com a capacidade de combinar processos diferentes e fazer com que todos trabalhem em direção a um único objetivo. Bash é realmente útil quando se trata de lidar e manipular as entradas e saídas, o que é uma coisa realmente difícil de fazer em outras linguagens de programação de uso geral, como Python, C, etc. No entanto, quando se trata de estruturas de dados e tarefas complexas, como manipular dados complexos, o Bash não pode lidar com essas tarefas e temos que procurar em linguagens de programação como Python, Perl, C, etc. Nas linguagens de programação, você pode criar software ou uma ferramenta, mas não pode construir nenhum deles em Bash. No entanto, você pode usar o Bash para executar as ferramentas ou mesclar essas ferramentas para executar com eficiência. É como construir um foguete, se considerarmos essa metáfora, as linguagens de programação o ajudarão.
Como criar e executar scripts de bash?
Para criar um script bash, você deve criar um arquivo de texto primeiro com a extensão de .sh no final do nome do arquivo. Você pode criar o arquivo de script de bash usando o terminal.
$ toque script.sh
Depois de digitar no comando acima, pressione a tecla Enter e você terá um arquivo de script de bash criado em seu diretório de trabalho atual. Mas não é isso, criamos o arquivo de script, mas temos que executar certas ações para concluir o script e executá -lo. Primeiro de tudo, abra o arquivo de script em um editor de nano ou gedit e no tipo de primeira linha em:
#!/BIN/BASH
Esta é uma primeira linha padrão para todos. Qualquer script não ter #!/Bin/Bash na primeira linha não seria considerado um script bash, portanto, adicione esta linha ao topo de cada script. Depois de adicionar essa linha, agora você pode começar a escrever no script. Por exemplo, eu escrevia aqui um comando de eco simples:
$ echo “Este é Linuxhint, melhor plataforma de aprendizado para Bash”
Depois de escrever este comando, agora você pode seguir em frente salvá -lo e voltar ao seu terminal. Escreva em seu terminal:
$ ls -al
Você pode ver 'script.SH 'escrito em cor branca, que é um sinal de que o script é um arquivo não executável, pois os arquivos executáveis geralmente estão em cores verdes. Além disso, dê uma olhada no lado esquerdo, onde podíamos ver um padrão como "-rw-r-r-", que reflete que o arquivo é apenas legível e escritoso.
A primeira parte que contém 'RW' é as permissões para o proprietário provavelmente o usuário atual.
2ª parte que contém 'r' é a permissão para o grupo em que temos vários usuários.
Enquanto a terceira parte que contém 'r' é permissão para o público, o que significa que qualquer pessoa pode ter essas permissões para o arquivo mencionado.
'R' significa Permissões de leitura, 'W' significa permissões de gravação, 'X' significa permissões executáveis. Claramente, não vemos x contra 'script.sh '. Para adicionar permissões executáveis, há duas maneiras de fazer isso.
Método 1
Neste método, você pode escrever um comando chmod simples com '+x' e adicionaria as permissões executáveis.
$ chmod +x script.sh
No entanto, essa não é a maneira mais eficiente de fornecer permissões executáveis, pois oferece permissões executáveis não apenas ao proprietário, mas também ao grupo e ao público, o que certamente não queremos por razões de segurança. Dê uma olhada:
Método 2
Neste método, você pode usar números para ditar as permissões de um arquivo. Antes de entrarmos nisso, gostaria de lhe dar uma breve idéia do que esses números significam e como você pode usá -los para manipular permissões.
Leia = 4
escreva = 2
execute = 1
Os números de permissão estariam em três dígitos após o comando chmod e cada dígito representa as permissões do proprietário, grupo e outros (público). Por exemplo, para dar permissões de leitura, gravação e execução ao proprietário e leia permissões ao grupo e outros seriam algo assim:
script $ chmod 744.sh
Se você pudesse notar, chegaria à conclusão de que adicionamos leitura, escreva e executam números para o proprietário no primeiro dígito como 4+2+1 = 7, e para o grupo e outros usamos o dígito de leitura eu.e. 4.
Execute um script de basquete
Agora finalmente chegamos a uma marca onde podemos executar o script de bash. Para executar seu script Bash, você precisa ter certeza de que está no presente diretório de trabalho onde seu script reside. Não é obrigatório, mas assim é fácil, pois você não precisa escrever todo o caminho. Depois de fazer isso, agora vá em frente e escreva em seu terminal “./NameofScript.sh ”. No nosso caso, o nome do script é 'script.Sh ', então escrevíamos:
$ ./roteiro.sh
3 exemplos simples de script de bash
Olá Linuxhint
Primeiro de tudo, criaríamos um arquivo bash no atual diretório de trabalho:
$ nano f_script.sh
Dentro do arquivo, você precisa escrever o seguinte:
#!/BIN/BASH
eco "Hello Linuxhint"
Depois de escrevê -lo, agora tente pressionar Ctrl+O para gravar alterações de arquivo, se você quiser manter o nome o mesmo golpe Enter, caso contrário, edite o nome e depois pressione Enter. Agora pressione Ctrl+X para sair do editor Nano. Agora você veria um arquivo chamado f_script.SH em seu diretório atual.
Para executar este arquivo, você pode alterar suas permissões para torná -lo executável ou pode escrever:
$ bash f_script.sh
Comando Echo
Quando falamos sobre o comando Echo, ele é simplesmente usado para imprimir praticamente tudo o que você deseja imprimir, desde que esteja escrito dentro das citações. Normalmente, quando você executa um comando de eco sem bandeira, deixa uma linha e imprime a saída. Por exemplo, se tivermos um script:
#!/BIN/BASH
eco "Imprimir na próxima linha"
Depois de salvo, se o executarmos:
$ bash f_script.sh
Se usarmos a bandeira '-n' com eco, ele imprime na mesma linha.
#!/BIN/BASH
eco -n "Imprimir na mesma linha"
Depois de salvo, se o executarmos:
$ bash f_script.sh
Da mesma forma, se usarmos '\ n' ou '\ t' dentro das citações duplas, ele imprimiria como é.
#!/BIN/BASH
eco "\ nprint na mesma linha \ n"
No entanto, se usarmos a bandeira '-e', tudo não apenas desaparece, mas também aplica o \ n e \ t e você poderá ver as alterações na saída abaixo:
#!/BIN/BASH
echo -e "\ nprint na mesma linha \ n"
Comentários em Bash
Um comentário é uma linha que não importa para o computador. Tudo o que você escreve como um comentário é anulado ou ignorado pelo computador e não tem impacto no código escrito. Os comentários geralmente são considerados mais úteis para um programador entender a lógica do código, para que, quando ele voltar a retrabalhar nas partes do código, esses comentários possam lembrá -lo da lógica e das razões pelas quais ele escreveu código em um específico caminho. Os comentários também podem ser usados por outros programadores que podem querer fazer alterações no código. Se você escreveu um pedaço de código e não deseja removê -lo, mas deseja ver a saída sem esse pedaço de código específico, pode comentar essa parte específica de código e seguir em frente e executar. Seu programa funcionará muito bem, obteria bons resultados enquanto esse código extra ainda estiver presente em seu script, mas não é eficaz devido a comentários. Sempre que quiser usar esse código novamente, vá em frente e descomemente essas linhas e você está pronto para ir.
Existem duas maneiras de escrever comentários em Bash; Uma maneira é escrever comentários de linha única, enquanto a outra maneira é usada para escrever comentários de várias linhas.
Comentários de linha única
Em comentários de linha única, usamos um sinal de '#' que ajuda a comentar em toda a linha. Qualquer coisa escrita na linha seguida por '#' seria considerada um comentário e não teria valor real quando estivermos executando o script. Este comentário de linha única pode ser usada para comunicar a lógica e a compreensão do código a alguém que tem acesso ao código.
#!/BIN/BASH
echo -e "\ nprint na mesma linha \ n"
#Este script nos ajuda a aplicar a combinação de /n e /t
Comentários de várias linhas
Digamos que você queira comentar cem linhas em seu script. Nesse caso, seria difícil para você usar comentários de linha única. Você não quer perder seu tempo colocando # em todas as linhas. Podemos usar ':' e depois 'quaisquer comentários'. Isso ajudaria você a comentar várias linhas apenas digitando em 3 símbolos que são úteis e úteis.
#!/Bin/Bash '
: 'Este é o script que garante
que \ n e \ t funciona e é aplicado
de uma maneira que temos a saída necessária '
echo -e "\ nprint na mesma linha \ n"
Dê uma olhada em 30 exemplos de scripts bash no Linuxhint.com:
https: // linuxhint.com/30_bash_script_examples/
6 lições mais importantes em scripts de basquete
1. Afirmação condicional
A declaração condicional é uma ferramenta muito útil na tomada de decisão. É amplamente utilizado em linguagens de programação. Mais frequentemente, precisamos tomar decisões com base em determinadas condições. A declaração condicional avalia a condição dada e toma a decisão. Em Bash, também usamos a declaração condicional como qualquer outra linguagem de programação. A sintaxe do uso da declaração condicional em Bash é um pouco diferente das outras linguagens de programação. A condição IF é a declaração condicional mais usada em Bash e outras linguagens de programação de uso geral. A condição se avalia a condição dada e toma a decisão. A condição dada também é chamada de expressão de teste. Existem inúmeras maneiras de usar a condição IF em Bash. A condição se é usada com mais bloco. No caso, se a condição fornecida for verdadeira, as declarações dentro do bloco se forem executadas, caso contrário, o bloco else será executado. Existem várias maneiras de usar a declaração de condição IF em Bash, que são os seguintes:
A declaração if
A instrução IF avalia apenas a condição fornecida, se a condição fornecida for verdadeira, as declarações ou comandos dentro do bloco se forem executados; caso contrário, o programa será encerrado. Em Bash, se a condição começar com a palavra -chave IF e termina com a palavra -chave FI. A palavra -chave então é usada para definir o bloco de declarações ou comandos que executam quando uma determinada condição é verdadeira. Vamos declarar uma variável e usar a condição if para avaliar o valor da variável, seja maior que 10 ou não. O -GT é usado para avaliar a condição maior que.
#!/BIN/BASH
Var = 100
#Deparing a condição if
Se [$ var -gt 10]
então
eco "O $ var é maior que 10"
#Ensando a condição IF
fi
A declaração se else
A instrução if else também é usada como uma declaração condicional. As declarações ou comandos após a condição se for executada se a condição fornecida for verdadeira. Caso contrário, o bloco else será executado se a condição fornecida não for verdadeira. O bloco else é seguido pelo bloco if e começa com a palavra -chave else.
#!/BIN/BASH
Var = 7
#Deparing a condição if
Se [$ var -gt 10]
então
eco "O $ var é maior que 10"
#Decaring else Block
outro
eco "O $ var é menor que 10"
#Ensando a condição IF
fi
Várias condições podem ser avaliadas usando a condição IF. Podemos usar o operador (&) e / ou operador (ii) para avaliar as múltiplas condições dentro de uma única instrução se.
#!/BIN/BASH
Var = 20
#Deparing a condição if
se [[$ var -gt 10 && $ var -lt 100]]
então
eco "O $ var é superior a 10 e menos de 100"
#Decaring else Block
outro
eco "a condição não satisfaz"
#Ensando a condição IF
fi
A declaração se aninhada
Em declaração aninhada, temos uma declaração IF dentro de uma declaração if. A primeira declaração se for avaliada, se for verdade.
#!/BIN/BASH
Var = 20
#Deparing a condição if
Se [[$ var -gt 10]]
então
#Se a condição dentro de outro se Conside
Se [$ var -lt 100]
então
eco "O $ var é superior a 10 e menos de 100"
#Decaring else Block
outro
eco "a condição não satisfaz"
#Ensando a condição IF
fi
outro
eco "O $ var é menor que 10"
fi
A declaração if elif
A instrução IF ELIF é usada para avaliar várias condições. A primeira condição começa com o bloco if e as outras condições são seguidas pela palavra -chave Elif. Vamos considerar o exemplo anterior do número de variáveis e implementar a instrução IF ELIF em nosso script bash. O EQ é usado como um operador igual.
#!/BIN/BASH
Var = 20
#Deparing a condição if
Se [[$ var -eq 1]]
então
eco "o valor variável é igual a 1"
Elif [[$ var -eq 2]]
então
eco "o valor variável é igual a 2"
Elif [[$ var -eq 3]]
então
eco "o valor variável é igual a 2"
Elif [[$ var -gt 5]]
então
eco "o valor variável é maior que 5"
fi
2. Looping
Loops são a parte essencial e fundamental de qualquer linguagem de programação. Ao contrário, as outras linguagens de programação, os loops também são usados no Bash para executar uma tarefa repetidamente até que a condição fornecida seja verdadeira. Os loops são iterativos, eles são uma ótima ferramenta para automação de tipos semelhantes de tarefas. O loop for, enquanto o loop, e até o loop ser usado em bash.
Vamos discutir esses loops um por um.
O loop while
O loop while executa as mesmas declarações ou comandos repetidamente. Ele avalia a condição e executa as declarações ou comandos até que a condição seja verdadeira.
Esta é a sintaxe básica de usar um loop de tempo em bash.
Enquanto [condição ou expressão de teste]
fazer
declarações
feito
Vamos implementar o loop while em nosso script.Arquivo SH. Temos uma variável var cujo valor é igual a zero. No Whle Whle Loop, colocamos uma condição, que o loop deve funcionar até que o valor do var seja menor que 20. O valor variável é incrementado por 1 após cada iteração. Portanto, neste caso, o loop começará a executar até que o valor variável seja menor que 20.
#!/BIN/BASH
Var = 0
Enquanto [$ var -LT 20]
fazer
eco "O valor atual da variável é $ var"
#ncomentando o valor por 1 em var
Var = $ ((var+1))
feito
O loop for
O loop for é o loop mais usado em todas as linguagens de programação. É usado para executar a tarefa iterativa. É a melhor maneira de executar tarefas repetitivas. Vamos declarar o loop for em nosso script.Arquivo SH e use -o para executar uma tarefa repetitiva.
#!/BIN/BASH
Var = 0
para ((i == 0; i<20; i++ ))
fazer
eco "Olá e bem -vindo ao Linuxhint"
#ncomentando a variável i
i = $ ((i+1))
feito
eco "este é o fim do loop"
O loop até
O outro tipo de loop usado no Bash é até o loop. Ele também executa ou executa o mesmo conjunto de repetidamente. O loop até avaliar a condição e começar a executar até que a condição fornecida seja falsa. O loop até que termina quando a condição fornecida é verdadeira. A sintaxe do loop até é a seguinte:
Até [condição]
fazer
declarações
comandos
feito
Vamos implementar o loop até o nosso script.Arquivo SH. O loop até que o loop será executado a menos que a condição seja falsa (o valor da variável é menor que 20)
#!/BIN/BASH
Var = 0
Até [$ var -gt 20]
fazer
eco "Olá e bem -vindo ao Linuxhint"
#ncomentando a variável i
Var = $ ((var+1))
feito
eco "Este é o fim de até o loop"
3. Lendo o usuário e escrevendo na tela
O BASH dá a liberdade ao usuário para inserir algum valor ou dados da string no terminal. O usuário inserido string ou dados pode ser lido no terminal, ele pode ser armazenado no arquivo e pode ser impresso no terminal. No arquivo Bash, a entrada do usuário pode ser lida usando o ler palavra -chave e nós a armazenamos em uma variável. O conteúdo variável pode ser exibido no terminal usando o comando echo.
#!/BIN/BASH
eco "escreva algo no terminal"
#Sortando o valor inserido no VAR
Leia var
eco "você entrou: $ var"
Várias opções podem ser usadas com o comando de leitura. As opções mais usadas são -p e -s. O -P exibe o prompt e a entrada podem ser realizados na mesma linha. O -S recebe a entrada no modo silencioso. Os caracteres da entrada são exibidos no terminal. É útil inserir algumas informações confidenciais i.e. senhas.
#!/BIN/BASH
Leia -P "Digite email:" Email
eco "Digite a senha"
Leia -Senha
4. Lendo e escrevendo arquivos de texto
Os arquivos de texto são os componentes essenciais para ler e escrever os dados. Os dados são armazenados temporariamente nos arquivos de texto e podem ser lidos facilmente no arquivo de texto. Primeiro, vamos discutir a gravação dos dados no arquivo de texto e, depois disso, discutiremos a leitura dos dados dos arquivos de texto.
Escrevendo os arquivos de texto
Os dados podem ser gravados em um arquivo de várias maneiras:
Sinal de suporte de anjo certo (>) para escrever dados
É a maneira mais usada de escrever os dados no arquivo de texto. Escrevemos os dados e depois colocamos o signo>. O> sinal aponta para o arquivo de texto onde temos que armazenar os dados. No entanto, ele não anexa o arquivo e os dados anteriores do arquivo são completamente substituídos pelos novos dados.
#!/BIN/BASH
#User insere o nome do arquivo de texto
Leia -P "ENTER NOME DO ARQUIVO:" Arquivo
#User insere os dados para armazenar no arquivo de texto
Leia -P "Escreva dados para inserir no arquivo:" dados
#Sortoring Data no arquivo de texto
#> aponta para o nome do arquivo.
eco $ dados> $ arquivo
Sinal de suporte de anjo certo (>>) para escrever dados
O >> é usado para armazenar a saída de qualquer comando no arquivo. Por exemplo, o comando ls -al mostra o conteúdo e as permissões de um arquivo em um diretório específico. O >> armazenará a saída no arquivo.
#!/BIN/BASH
#User insere o nome do arquivo de texto
Leia -P "ENTER NOME DO ARQUIVO:" Arquivo
#Sorando a saída de comando no arquivo
LS -al >> arquivo $
Usando o comando tee para escrever dados no arquivo de texto
O comando tee em bash é usado para escrever a saída do comando em um arquivo de texto. Ele imprime a saída do comando no terminal e também o armazenar no arquivo de texto.
#!/BIN/BASH
#User insere o nome do arquivo de texto
Leia -P "ENTER NOME DO ARQUIVO:" Arquivo
#Sortando a saída de comando no arquivo usando o comando tee
ls -al | Tee $ arquivo
O comando tee substitui os dados existentes do arquivo por padrão. No entanto, -uma opção com o comando tee pode ser usado para anexar o arquivo.
#!/BIN/BASH
#User insere o nome do arquivo de texto
Leia -P "ENTER NOME DO ARQUIVO:" Arquivo
#Sortando a saída de comando no arquivo usando o comando tee
ls -al | Tee -a $ arquivo
Lendo os arquivos de texto
O gato O comando é usado para ler dados do arquivo. É o mais comumente usado para esse fim. Ele simplesmente imprime o conteúdo do arquivo de texto no terminal. Vamos imprimir o conteúdo ou os dados do arquivo no terminal usando o gato comando.
#!/BIN/BASH
#User insere o nome do arquivo de texto
Leia -P "ENTER NOME DO ARQUIVO:" Arquivo
#lendo os dados do arquivo de texto
arquivo de gato $
5. Executando outros programas da Bash
A festa dá autoridade para executar outros programas do script Bash. Usamos o comando EXEC para executar os outros programas da Bash. O comando EXEC substitui o processo anterior pelo processo atual e inicia o programa atual. Por exemplo, podemos abrir o editor Nano, Gedit ou Vim do script Bash.
#!/BIN/BASH
#Running Nano Editor da Bash
Exec Nano
#!/BIN/BASH
#Running Gedit de Bash
executivo gedit
Da mesma forma, podemos executar o aplicativo do navegador da festa também. Vamos correr o navegador Mozilla Firefox.
#!/BIN/BASH
#running Firefox
EXEC Firefox
Além disso, podemos executar qualquer programa do Bash usando o comando EXEC.
6. Processamento da linha de comando
O processamento da linha de comando refere-se ao processamento dos dados inseridos no terminal. Os dados da linha de comando são processados para muitos propósitos i.e. Lendo a entrada do usuário, subestimando os comandos e lendo os argumentos. Anteriormente, discutimos o comando de leitura. O comando de leitura também é usado para o processamento da linha de comando. Nesta seção, discutiremos o processamento de argumentos da linha de comando. Em Bash, podemos processar os argumentos que são passados ou escritos no terminal. Os argumentos são processados da mesma maneira que são passados. Portanto, é chamado de parâmetros posicionais. Em contraste com outras linguagens de programação, a indexação dos argumentos em Bash começa com 1. O sinal do dólar ($) é usado para ler os argumentos. Por exemplo, os US $ 1 lê o primeiro argumento, os US $ 2 lê o segundo argumento e assim por diante. Os argumentos podem ser analisados por vários motivos, como obter informações do usuário.
#!/BIN/BASH
eco "digite seu nome"
#processando o primeiro argumento
eco "primeiro nome:" $ 1
#processando o segundo argumento
eco "Nome do meio:" $ 2
#processando o terceiro argumento
eco "sobrenome:" $ 3
eco "Nome completo:" $ 1 $ 2 $ 3
Ler os dados do terminal usando leitura e analisar os argumentos são os exemplos mais adequados do processamento da linha de comando.
História de Bash e comparação com outras conchas
O Bash agora é o componente essencial dos sistemas baseados em UNIX e Linux. O Bourne Shell foi desenvolvido inicialmente por Stephen Bourne. O objetivo pretendido do Stephen Bourne Shell era superar as limitações das conchas já existentes naquele momento. Antes da concha de Bourne, o Unix apresentou a concha Thompson. No entanto, a concha Thompson foi muito limitada no script de processamento. Os usuários não foram capazes de executar uma quantidade suficiente do script. Para superar todas essas limitações da concha Thompson, a concha de Bourne foi introduzida. Foi desenvolvido no laboratório Bells. Em 1989, o Brian Fox revolucionou o Bourne Shell, adicionando vários outros recursos e nomeou -o como Bourne Again Shell (Bash).
Nome do shell | Ano | Plataforma | Descrição | Comparação com Bash |
Thompson Shell | 1971 | Unix | A automação do script era limitada. O usuário só pode fazer uma pequena quantidade de script. | A festa supera as limitações da concha Thompson e do usuário pode escrever os grandes scripts. |
Bourne Shell | 1977 | Unix | Ele nos permite escrever e executar uma quantidade enorme de scripts. O Bourne Shell não fornece o editor de comando e um número maior de instalações de atalho. | O Bash oferece melhorias no design junto com o editor de comando. |
Shell posix | 1992 | Posix | O shell POSIX é portátil. Ele fornece muitos atalhos e controle de emprego. | A festa é popular para executar as tarefas que não requerem portabilidade. |
Z shell | 1990 | Unix | O shell z é rico em recursos. É um shell muito poderoso e fornece recursos como conclusão automática de comando, correção de ortografia e preenchimento automático. | O BASH não possui alguns dos recursos fornecidos pelo z shell. |
Conclusão
Bash é uma ferramenta muito poderosa que nos permite executar comandos e scripts. Um script bash nos permite automatizar as tarefas e comandos diários. Um script bash é uma combinação de vários comandos. O arquivo Bash termina com o .Extensão SH. Antes de executar o script Bash, precisamos atualizar as permissões de arquivo e precisamos fornecer a permissão executável para o .Arquivo SH. Este artigo explica os scripts Bash e Bash com a ajuda de exemplos simples e lições importantes. Além disso, descreve a história do Bash e compara seus recursos com várias outras conchas poderosas.