SlideShare uma empresa Scribd logo
Escrito por Vivek G. Gite.
Cyberciti Computers & nixCraft, Pune, ÍNDIA.
Machine Translated by Google
Como instalar o Linux
Onde posso usar o Linux?
Como obter o Linux?
O que é kernel?
Variáveis no shell
Regras para nomear nomes de variáveis (UDV e variáveis de sistema)
Como definir variáveis definidas pelo usuário (UDV)
O que é Linux?
Capítulo 2: Introdução à programação Shell
Como escrever script de shell
Quem desenvolveu o Linux?
Por que escrever Shell Script?
Capítulo 1: Introdução rápida ao Linux
Mais sobre a Shell...
O que é Linux Shell?
Copyright © 1999-2002 por Vivek G. Gite
<vivek@nixcraft.com>
Como imprimir ou acessar o valor do comando echo UDV (variáveis definidas
pelo usuário)
Como usar o Shell O
que é Shell Script?
(Formalmente conhecido como www.vivek-tech.com)
Tutorial de script de shell
do Linux v1.05r3
Um manual para iniciantes
http://www.cyberciti.biz/pdf/lsst/index.html (1 de 5) [29/07/2002 18:50:01]
Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes
Índice
Machine Translated by Google
http://www.cyberciti.biz/pdf/lsst/index.html (2 de 5) [29/07/2002 18:50:01]
Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes
Capítulo 4: Comandos avançados de script de shell
Tomada de decisão em shell script (ou seja, comando if) comando
de teste ou [expr] if...else...fi
Loops if-then-else multiníveis
em scripts de shell for loop
Loop for
aninhado loop while
A instrução
case Como depurar o
script de shell?
/dev/null - para enviar saída indesejada da variável local e
global do programa Shell (comando de exportação)
Mais comandos em uma linha de comando
Processamento de linha de
comando Por que argumentos de linha de comando
são necessários Redirecionamento de saída/entrada padrão, ou seja, redirecionamento
de
entrada
- saída Filtro de tubos
O que é processos Por que
processo é necessário Comando(s) Linux Relacionado(s) ao processo
Ifs aninhados
Capítulo 3: Construções de linguagem estruturada de shells (bash)
Aritmética do Shell
Mais sobre cotações
Status de
saída Os curingas da
instrução de leitura (abreviação do nome do arquivo ou metacaracteres)
Execução condicional, ou seja, && e ||
Redirecionamento de E/S e descritores de
arquivo
Funções Interface do usuário e utilitário de diálogo
- Parte I Interface do usuário e utilitário de diálogo
- Parte II Caixa de mensagens (msgbox) usando o
utilitário de diálogo Caixa de confirmação (caixa yesno) usando o
utilitário de diálogo Entrada (inputbox) usando
o utilitário de diálogo Interface do usuário usando o utilitário de diálogo -
Juntando tudo
comando trap O comando shift
Machine Translated by Google
Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes
http://www.cyberciti.biz/pdf/lsst/index.html (3 de 5) [29/07/2002 18:50:01]
Removendo linhas duplicadas do arquivo de banco de dados de texto usando o utilitário uniq
Manipulação de dados usando o utilitário awk
utilitário sed - Editando arquivo sem usar o editor
comando getopts
Encontrando padrão correspondente usando o utilitário grep
Localizar e substituir (substituindo expressão regular)
Substituindo palavra pela confirmação do usuário
Encontrando palavras
O utilitário de junção
Copiando linhas
Mais exemplos de sed
Procurando as palavras
Traduzindo intervalo de caracteres usando o utilitário tr
Capítulo 8: Exemplos de Shell Scripts
Imprimindo texto na tela
Selecionando parte de um arquivo usando o utilitário cut
Convertendo caracteres minúsculos em maiúsculos
Capítulo 7: awk revisitado
Introdução ao awk Variáveis
predefinidas do awk Fazendo
aritmética com awk Variáveis
definidas pelo usuário no awk Uso
da instrução printf Uso da
especificação de formato Código if
condição no awk Loops
no awk Exemplos
da vida real no awk awk
diversos sed -
Introdução rápida
Redirecionamento a saída do comando sed
Como escrever scripts sed?
Juntando linhas usando o utilitário paste
Excluindo linhas
Capítulo 6: Aprendendo expressões com ex
Capítulo 5: Utilitários essenciais para usuários avançados
Usando intervalo de caracteres em expressões regulares
Usando & como caractere de substituição especial
Preparando-se para um tour rápido de utilitários essenciais
Começando com ex
Machine Translated by Google
http://www.cyberciti.biz/pdf/lsst/index.html (4 de 5) [29/07/2002 18:50:01]
Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes
Implementação do processo em segundo plano:
Relógio digital usando shell script Interface
de usuário e funções em shell script: Shell script para
implementar sistema baseado em menu.
Loops usando loop while e for: Imprime
nos. como 5,4,3,2,1 usando loop while Imprimindo
os padrões usando loop for.
Comando de manuseio/eco de tela com código de sequência de escape: Shell
script para imprimir a mensagem "Hello World", em negrito, efeito Blink e em cores diferentes como vermelho, marrom etc.
Capítulo 9: Outros Recursos
Manipulação de linha de comando (args):
Adicionando 2 números. fornecido como argumentos de linha
de comando Calculando a média de números fornecidos em argumentos de linha
de comando Descobrindo o maior número de três números fornecidos como argumentos de linha de comando
Script de shell para implementar a instrução getopts.
Aritmética em shell script: Executando
cálculo de número real em shell script Convertendo número decimal
em número hexadecimal Calculando fatorial de determinado número
Manipulação de arquivos: Shell script para
determinar se
determinado arquivo existe ou não.
Calculadora matemática básica (declaração de caso)
Desenvolvimento de lógica:
Shell script para imprimir determinados números, soma de todos os
dígitos Shell script para imprimir contém o arquivo de um determinado número de linha até o próximo número de linhas
Shell script para dizer Bom dia/Tarde/Noite ao fazer login no sistema Shell script para encontrar se o
ano inserido é bissexto ou não Classifique os cinco números fornecidos
em ordem crescente (uso de matriz)
etc.
Apêndice - A : Tutorial do servidor de arquivos Linux (LFST) versão b0.1 Rev. 2 Apêndice - B :
Referência de comandos do Linux (LCR)
Sobre o autor Sobre
este documento
Administração do sistema:
Obtendo mais informações sobre seu ambiente de trabalho por meio de script de shell Script de shell para
coletar informações úteis do sistema, como CPU, discos, RAM e seu ambiente
Script de shell para adicionar DNS Entery ao banco de dados BIND com servidores de nomes, servidores de correio (MX) e host padrão
Integrando
script awk com shell script: Script para converter nomes
de arquivos de MAIÚSCULAS para nomes de arquivos em minúsculas ou vice-versa.
Machine Translated by Google
(Cyeberciti Computers & nixCraft tem anos de experiência em Linux/Unix/FreeBSD. Se você precisar de algum
assistência, educação, suporte para Linux/Unix, escreva para sales@cyberciti.biz )
http://www.cyberciti.biz/pdf/lsst/index.html (5 de 5) [29/07/2002 18:50:01]
Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes
Lar Próximo
Acima Introdução rápida ao Linux
Machine Translated by Google
O que há de diferente neste tutorial
Organização do Capítulo
Público deste tutorial
Introdução
http://www.cyberciti.biz/pdf/lsst/ch01.html (1 de 2) [29/07/2002 18:50:59]
LSST v1.05r3 > Capítulo 1 > Introdução rápida ao Linux
Presumo que você tenha pelo menos conhecimento prático de Linux, ou seja, comandos básicos como criar, copiar, remover
arquivos/diretórios etc. ou como usar editores como vi ou mcedit e fazer login em seu sistema. Mas não espera nenhuma
experiência em linguagem de programação. Se você tiver acesso ao Linux, este tutorial fornecerá uma introdução fácil de
seguir ao script de shell.
Muitos outros tutoriais e livros sobre scripts de shell do Linux são muito básicos ou ignoram etapas intermediárias
importantes. Mas este tutorial manteve o equilíbrio entre os dois. Ele cobre muitos exemplos modernos de scripts de shell da
vida real que quase são perdidos por muitos outros tutoriais/documentos/livros. Usei uma
abordagem prática neste tutorial. A ideia é muito clara "faça você mesmo ou aprenda fazendo", ou seja, tentar as coisas
sozinho é a melhor maneira de aprender, então os exemplos são apresentados como scripts de shell completos e funcionais,
que podem ser digitados e executados
Os capítulos 1 a 4 mostram a maioria dos conceitos úteis e importantes de shell scripting. Capítulo 5, introdução às ferramentas
e utilitários que podem ser usados durante a programação inteligente do shell do Linux. Os capítulos 6 e 7 são sobre
expressões e expressões usadas principalmente por ferramentas como sed e awk. O Capítulo 8 está repleto de exemplos de
scripts de shell divididos em diferentes categorias. O Capítulo 9 fornece mais informações sobre recursos que podem ser usados
ao aprender o script de shell, como informações sobre o sistema de arquivos Linux, referência de comandos comuns do
Linux e outros recursos.
O Capítulo 1 apresenta conceitos básicos como o que é Linux, onde o Linux pode ser usado e continua explicando o
shell, shell script e kernel, etc.
Próximo
Este tutorial foi desenvolvido para iniciantes que desejam aprender o básico de script/programação de shell, além de introdução
a ferramentas poderosas como awk, sed, etc. ao ler este tutorial, você pode achar o manual bastante útil (digite man bash no
prompt $ para ver as páginas do manual). O manual contém todas as informações necessárias, mas não terá muitos
exemplos, o que deixa a ideia mais clara. Por esse motivo, este tutorial contém exemplos em vez de todos os recursos do
shell.
Anterior
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 1:
Introdução: Introdução rápida ao Linux
O Capítulo 2 mostra como escrever o shell script e executá-lo. Ele explica muitos conceitos básicos necessários para escrever
scripts de shell.
Machine Translated by Google
http://www.cyberciti.biz/pdf/lsst/ch01.html (2 de 2) [29/07/2002 18:50:59]
LSST v1.05r3 > Capítulo 1 > Introdução rápida ao Linux
Espero que você tenha tanto prazer lendo este tutorial quanto eu tive ao escrevê-lo. Depois de ler este tutorial, se você
for capaz de escrever seus próprios scripts de shell poderosos, então acho que o propósito de escrever este tutorial foi
atendido e, finalmente, se você tiver tempo depois de ler este tutorial, envie-me uma mensagem de e-mail
sobre seu comentário/sugestão /questions e bugs (erros) fora do curso que você encontrar neste tutorial.
Os capítulos 6 e 7 fornecem mais informações sobre padrões, filtros, expressões e, claro, sed e awk são abordados
em profundidade.
Observe que isso indica conceitos avançados de script de shell. Você pode pular isso se for realmente novo em Linux ou
programação, embora isso não seja RECOMENDADO por mim.
Anterior
O Capítulo 5 apresenta programas utilitários poderosos que podem ser usados para diversos fins durante a
programação do shell.
O Capítulo 8 contém muitos exemplos de scripts de shell divididos em várias categorias, como desenvolvimento
lógico, administração de sistema, etc.
O Capítulo 4 apresenta muitos conceitos avançados de script de shell, como função, interface de usuário, descritores
de arquivo, manipulação de sinal, vários argumentos de linha de comando, etc.
O Capítulo 3 é sobre como tomar decisões em scripts de shell, bem como em loops em shell. Explica o que são
expressões, como o Shell entende as condições/decisões. Ele também mostra o conceito de aninhamento para
instruções de loop if e for e depuração de script de shell.
Lar
Acima Próximo O que é Linux?
Machine Translated by Google
O que é Linux?
http://www.cyberciti.biz/pdf/lsst/ch01sec01.html [29/07/2002 18:51:07]
LSST v1.05r3 > Capítulo 1 > O que é Linux?
• Semelhante ao Unix
• Gratuito
• Código aberto
Acima
Anterior Próximo
Capítulo 1: Introdução: Introdução rápida ao Linux
Tutorial de script de shell do Linux (LSST) v1.05r3
Lar
Anterior
Quem desenvolveu o Linux?
Próximo
• Sistema operacional de rede
Machine Translated by Google
Quem desenvolveu o Linux?
mais informações sobre Linus Torvalds, visite sua página inicial.
LSST v1.05r3 > Capítulo 1 > Quem desenvolveu o Linux?
http://www.cyberciti.biz/pdf/lsst/ch01sec02.html [29/07/2002 18:51:08]
sistema operacional de propósito específico chamado Minix (versão pequena do Unix e usada em ambiente acadêmico). Mas
Em 1991, Linus Torvalds estudou Unix na Universidade, onde utilizou experimentos educacionais especiais
O Minix tinha suas próprias limitações. Linus sentiu que poderia fazer melhor que o Minix. Então ele desenvolveu seu próprio
Lar
Anterior Próximo
Capítulo 1: Introdução: Introdução rápida ao Linux
Tutorial de script de shell do Linux (LSST) v1.05r3
Anterior O que é Linux? Como obter o Linux?
Próximo
versão do Minix, que agora é conhecido como Linux. Linux é código aberto desde o início do dia. Para
Acima
Machine Translated by Google
Site/Logotipo
Distribuições Linux.
SuSE Linux: http://www.suse.com/
Mandrake Linux:
http://www.mandrakesoft.com/
Próximo
Linux disponível para download pela rede, isso é útil se sua conexão com a internet for rápida. Outra forma é encomendar os
CD-ROMs o que economiza tempo, e a instalação a partir do CD-ROM é rápida/automática. Várias distribuições Linux
disponíveis. A seguir estão distribuições importantes do Linux.
Anterior
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 1:
Introdução: Introdução rápida ao Linux
Debian GNU/Linux: http://
www.debian.org/
Slackware Linux:
http://www.slackware.com/
Nota: Se você estiver na Índia, poderá obter a distribuição Linux da revista Leading Computer, como PC Quest (Até o PCQuest
tem seu próprio sabor Linux) ou se você estiver em Pune, Índia, visite nosso site para obter o Red Hat Linux ou qualquer outra
distribuição oficial do Linux. Observe que você também pode obter sua distribuição Linux com livros sobre Linux que você
compra na livraria local.
Caldera Linux:
http://www.calderasystems.com/
Red Hat Linux: http://
www.redhat.com/
LSST v1.05 > Capítulo 1 > Como obter o Linux?
http://www.cyberciti.biz/pdf/lsst/ch01sec03.html (1 de 2) [29/07/2002 18:51:11]
Como obter o Linux?
Machine Translated by Google
Acima Como instalar o Linux
Lar
Anterior Quem desenvolveu o Linux?
Próximo
LSST v1.05 > Capítulo 1 > Como obter o Linux?
http://www.cyberciti.biz/pdf/lsst/ch01sec03.html (2 de 2) [29/07/2002 18:51:11]
Machine Translated by Google
Lar
Anterior Como obter o Linux? Acima
Próximo
Capítulo 1: Introdução: Introdução rápida ao Linux
versão 6.2 e 7.2.
Por favor visite o LESSBS Página inicial do projeto para Guia de instalação visual rápida para Red Hat Linux
Tutorial de script de shell do Linux (LSST) v1.05r3
Onde posso usar o Linux?
Anterior Próximo
LSST v1.05 > Capítulo 1 > Como instalar o Linux?
http://www.cyberciti.biz/pdf/lsst/ch01sec04.html [29/07/2002 18:51:22]
Como instalar o Linux?
Machine Translated by Google
Onde posso usar o Linux?
Servidor Linux com diferentes sistemas operacionais clientes
• Robusto
• Estável
• Seguro
• Alto desempenho
Anterior Próximo
Você pode usar o Linux como sistema operacional de servidor ou como sistema operacional independente em seu PC. (Mas é mais adequado para servidor.) Como um
sistema operacional de servidor, ele fornece diferentes serviços/recursos de rede para o cliente. O sistema operacional do servidor deve ser:
Tutorial de script do Linux Shell (LSST) v1.05r3 Capítulo 1:
Introdução: Noções básicas do Linux Shell
O Linux oferece todas as características acima, além de seu sistema operacional de código aberto e gratuito. Portanto, o Linux pode ser usado como:
(1) Em estação de trabalho/ PC independente para processamento de texto, gráficos, desenvolvimento de software, internet, e-mail, bate-
papo, pequeno sistema de gerenciamento de banco de dados pessoal, etc.
(2) Em ambiente de rede como: (A) Arquivo
e impressão ou servidor de aplicativos Compartilhar os
dados, conectar o dispositivo caro como impressora e compartilhá-lo, e-mail dentro da LAN/intranet etc. são algumas das aplicações.
(B) O servidor Linux pode ser conectado à Internet, para que os PCs na intranet possam compartilhar a internet/e-mail, etc.
Você pode colocar seu servidor web que administra seu site ou transmitir as informações pela internet.
LSST v1.05 > Capítulo 1 > Onde posso usar Linux?
http://www.cyberciti.biz/pdf/lsst/ch01sec05.html (1 de 2) [29/07/2002 18:51:26]
Machine Translated by Google
Veja o MENOSBS projeto para obter mais informações sobre Linux Essential Services (conforme mencionado acima) e
Dispositivo de cache etc.
como implementá-los de maneira fácil para você ou sua organização.
• Servidor de grupo de trabalho
Próximo
No Data Center para diversas atividades de servidor como FTP, Telnet, SSH, Web, Mail, Proxy, Proxy
O que é kernel?
Lar
• Servidor Web
• Estação de trabalho de desenvolvimento de software
Portanto, você pode usar o Linux para:
Anterior
Acima
Como instalar o Linux
• Trabalho Pessoal
O servidor Linux pode atuar como servidor proxy/correio/WWW/roteador, etc.
http://www.cyberciti.biz/pdf/lsst/ch01sec05.html (2 de 2) [29/07/2002 18:51:26]
LSST v1.05 > Capítulo 1 > Onde posso usar Linux?
•
Machine Translated by Google
O Kernel decide quem utilizará esse recurso, por quanto tempo e quando. Ele executa seus programas (ou configura para
dados, dados de impressão na impressora, memória, gerenciamento de arquivos etc.
• Gerenciamento de arquivos
Tutorial de script de shell do Linux (LSST) v1.05r3
executar arquivos binários).
• Gerenciamento de memória
Anterior Onde posso usar o Linux?
Kernel é o coração do Linux OS.
• Gestão de processos
Ele gerencia recursos do Linux Os. Recursos significa recursos disponíveis no Linux. Por exemplo, facilidade para armazenar
• Gerenciamento de dispositivos
É a parte residente na memória do Linux. Ele executa a seguinte tarefa: -
Próximo
Anterior
O que é Linux Shell?
Próximo
Capítulo 1: Introdução: Noções básicas do Linux Shell
O kernel atua como um intermediário entre o hardware do computador e vários
• Gerenciamento de E/S
Lar
programas/aplicativo/shell.
Acima
http://www.cyberciti.biz/pdf/lsst/ch01sec06.html [29/07/2002 18:51:28]
LSST v1.05 > Capítulo 1 > LSST v1.05 > Capítulo 1 >
O que é kernel?
Machine Translated by Google
Vários shell disponíveis com Linux, incluindo:
Software grátis
a programação C
Anterior
Veja a página de manual.
$ gato /etc/conchas
Laboratórios AT&T Bell
--
Capítulo 1: Introdução: Noções básicas do Linux Shell
A sintaxe do shell C e
interpretador que executa comandos lidos do dispositivo de entrada padrão (teclado) ou de um arquivo.
BASH (Bourne-de novo
$ prompt. Este prompt depende do seu shell e ambiente que você definiu ou do seu sistema
Tutorial de script de shell do Linux (LSST) v1.05r3
Shell é um programa de usuário ou um ambiente fornecido para interação do usuário. Shell é uma linguagem de comando
Observação
tão poderosos quanto nossos Linux Shells são!
nós, para ler e escrever. Portanto, no Os existe um programa especial chamado Shell. A Shell aceita suas instruções ou
Ramey
Shell mais comum em
KSH (Korn Shell)
versão compatível de
CSH (C SHell)
TCSH é um aprimoramento
diferentes funções integradas.
O computador entende a linguagem de 0 e 1 chamada linguagem binária.
Desenvolvido por
Universidade da Califórnia
Fundação
Próximo
Nome do Concha
linguagem.
Digite $ man tcsh
Dica: Para encontrar todos os shells disponíveis em seu sistema, digite o seguinte comando:
Shell não faz parte do kernel do sistema, mas usa o kernel do sistema para executar programas, criar arquivos, etc.
Concha )
o uso é muito semelhante ao
--
Observe que cada shell faz o mesmo trabalho, mas cada um entende uma sintaxe de comando diferente e fornece
Administrador, portanto você pode receber um prompt diferente).
concha.
David Korn
shell (CSH).
querer. Se estivermos dando comandos do teclado, isso é chamado de interface de linha de comando (geralmente na frente do
Onde
Linux. É gratuito
TCSH
comandos em inglês (principalmente) e se for um comando válido, ele é passado para o kernel.
o Berkeley UNIX C
Qualquer um dos shells acima lê o comando do usuário (via teclado ou mouse) e informa ao Linux OS quais usuários
mas completamente
No MS-DOS, o nome do Shell é COMMAND.COM, que também é usado para a mesma finalidade, mas não é tão
Nos primórdios da computação, as instruções eram fornecidas em linguagem binária, o que era difícil para todos
Brian Fox e Chet
(Para BSD)
Bill Alegria
http://www.cyberciti.biz/pdf/lsst/ch01sec07.html (1 de 2) [29/07/2002 18:51:30]
LSST v1.05 > Capítulo 1 > O que é Linux Shell?
O que é Linux Shell?
Machine Translated by Google
Anterior O que é Kernel? Acima
$ eco $SHELL
Dica: Para encontrar seu shell atual, digite o seguinte comando
Como usar o Shell
Lar Próximo
http://www.cyberciti.biz/pdf/lsst/ch01sec07.html (2 de 2) [29/07/2002 18:51:30]
LSST v1.05 > Capítulo 1 > O que é Linux Shell?
Machine Translated by Google
programando o shell.
Veja o comando comum do Linux para sintaxe e exemplo, isso pode ser usado como referência rápida enquanto
Anterior O que é Linux Shell? O que é ShellScript?
Para usar o shell (você começa a usar o shell assim que faz login no sistema), basta digitar
comandos.
Capítulo 1: Introdução: Noções básicas do Linux Shell
Tutorial de script de shell do Linux (LSST) v1.05r3
Acima
Próximo
Próximo
Lar
Anterior
http://www.cyberciti.biz/pdf/lsst/ch01sec08.html [29/07/2002 18:51:31]
LSST v1.05 > Capítulo 1 > Como usar o Shell
Como usar o Shell
Machine Translated by Google
comandos. Isso é conhecido como shell script.
sequência de comando para arquivo de texto e diga ao shell para executar este arquivo de texto em vez de inserir o
Próximo
Tutorial de script de shell do Linux (LSST) v1.05r3
Script de shell definido como:
Por que escrever Shell Script?
Normalmente os shells são interativos. Significa que o shell aceita o comando seu (via teclado) e executa
Lar
eles. Mas se você usar o comando um por um (sequência de 'n' número de comandos), você poderá armazenar isso
Acima
Anterior
Anterior Próximo
Capítulo 1: Introdução: Noções básicas do Linux Shell
"Shell Script é uma série de comandos escritos em arquivo de texto simples. Shell script é exatamente como o arquivo em lote é MS-DOS
Como usar o Shell
mas tem mais poder que o arquivo em lote do MS-DOS."
http://www.cyberciti.biz/pdf/lsst/ch01sec09.html [29/07/2002 18:51:33]
LSST v1.05 > Capítulo 1 > O que é Shell Script?
O que é ShellScript?
Machine Translated by Google
Próximo
Anterior
• Economize muito tempo.
• Para automatizar alguma tarefa do dia a dia.
Capítulo 1: Introdução: Noções básicas do Linux Shell
• Útil para criar nossos próprios comandos.
• O shell script pode receber entradas do usuário, arquivá-las e exibi-las na tela.
Tutorial de script de shell do Linux (LSST) v1.05r3
• A parte de Administração do Sistema também pode ser automatizada.
Acima
Próximo
Lar
Mais sobre a Shell...
Anterior O que é Shell Script?
http://www.cyberciti.biz/pdf/lsst/ch01sec10.html [29/07/2002 18:51:34]
LSST v1.05 > Capítulo 1 > Por que escrever Shell Script?
Por que escrever Shell Script?
Machine Translated by Google
Tente entender o sistema operacional Linux
Distribuição Red Hat Linux). Todos os scripts também são testados no Red Hat Linux versão 7.2.
Tente entender o básico do shell do Linux
Tutorial de script de shell do Linux (LSST) v1.05r3
Anterior Por que escrever Shell Script?
Lar
Navegue na Web para ler o tutorial. (IE ou Netscape) Para a versão PDF você precisa de um leitor de PDF.
Neste tutorial estamos usando o shell bash.
Linux - shell bash. (Disponível em quase todas as distribuições Linux. Por padrão, bash é o shell padrão para
Introdução à programação Shell
Próximo
SO Linux (usei a distribuição Red Hat Linux versão 6.x+)
Capítulo 1: Introdução: Noções básicas do Linux Shell
Tente aprender a programação do shell do Linux
Acima
Anterior
Próximo
LSST v1.05 > Capítulo 1 > Noções básicas do Linux Shell
http://www.cyberciti.biz/pdf/lsst/ch01sec11.html [29/07/2002 18:51:36]
Objetivo deste tutorial (LSST v.1.5)
O que eu preciso para aprender este tutorial (LSST
Roteiro ?
Qual Shell estamos usando para escrever Shell
v.1.5)
Machine Translated by Google
Começaremos a escrever um pequeno script de shell, que imprimirá "Conhecimento é poder" na tela.
Nesta parte do tutorial você será apresentado à programação shell, como escrever scripts, executá-los, etc.
Antes de começar com isso você deve saber
• Como usar um editor de texto como o vi, consulte o comando vi comum para obter mais informações.
Capítulo 2: Introdução à programação Shell Próximo
Anterior
Tutorial de script de shell do Linux (LSST) v1.05r3
• Navegação básica de comandos
Acima
Próximo
Lar
Como escrever script de shell
Anterior Mais sobre Shell...
http://www.cyberciti.biz/pdf/lsst/ch02.html [29/07/2002 18:51:37]
LSST v1.05r3 > Capítulo 2 > Introdução à programação Shell
Introdução à programação Shell
Machine Translated by Google
(2) Depois de escrever o shell script, defina a permissão de execução para o seu script conforme
a
seguinte sintaxe: chmod permission your-script-name
(1) Use qualquer editor como vi ou mcedit para escrever scripts de shell.
Exemplos: $
chmod +x nome do seu script $ chmod 755 nome
do seu script
se você é novo no vi.
$ vi primeiro #
,
Próximo
Exemplo:
$. foo
Agora você está pronto para escrever o primeiro script de shell que imprimirá "Conhecimento é poder" na tela. Veja a lista de comandos comuns do vi
As etapas a seguir são necessárias para escrever o script Shell:
Exemplos: $
bash bar $ sh bar
$ ./bar
echo "Conhecimento é Poder"
Depois de salvar o script acima, você pode executá-lo da seguinte maneira:
$ ./first
Anterior
NOTA Na última sintaxe ./ significa diretório atual, mas apenas . (ponto) significa executar determinado arquivo de comando no shell atual sem
iniciar a nova cópia do shell. A sintaxe para. O comando (ponto) é o seguinte Sintaxe: . nome do
comando
Nota: Isso definirá a permissão de leitura, gravação e execução (7) para o proprietário, para o grupo e outras permissões são somente leitura e execução (5).
#Meu primeiro script de shell#
claro
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2:
Introdução à programação Shell
(3) Execute seu script como
sintaxe:
bash nome-seu-script sh
nome-seu-script ./nome-
seu-script
[Anúncio]
[Obtenha o domínio Cyberciti por apenas Rs.445 com 2 e-mails grátis]
LSST v1.05r3 > Capítulo 2 > Como escrever script de shell
http://www.cyberciti.biz/pdf/lsst/ch02sec01.html (1 de 2) [29/07/2002 18:51:39]
Como escrever script de shell
Machine Translated by Google
Como o Shell localiza o arquivo (meu próprio diretório bin para executar o script)
cal
Significado
A primeira tela ficará clara e, em seguida, Conhecimento é Poder será impresso na tela.
claro
claro
Próximo
Isso não executará o script, pois não definimos primeiro a permissão de execução para nosso script; para fazer isso digite o comando $
chmod 755 first $ ./first
#Meu primeiro script de
shell#
#
Sintaxe:
# comment-text
limpa a tela Para
imprimir mensagem ou valor de variáveis na tela,
usamos o comando echo, a forma geral do
comando echo é a seguinte sintaxe: echo
"Mensagem"
Introdução à programação Shell
# Script para imprimir informações do usuário que está atualmente logado e horário
Inicie o editor vi
Exercício:
1) Escreva o seguinte script de shell, salve-o, execute-o e anote sua saída.
Ponto Futuro: No final, por que a instrução exit 0 é usada? Consulte o status de saída para obter mais informações.
saída 0
$ vi primeiro
Dica: Para arquivos de script de shell, tente fornecer uma extensão de arquivo como .sh, que pode ser facilmente identificada por você como script de shell.
Comando(s) de script
echo "Olá $USER" echo "Hoje é c
";date echo "Número de login do usuário: c" ;
quem | wc -l echo "Calendário"
echo "Conhecimento é Poder"
Variáveis no Shell
Acima
data atual
Lar
#
# seguido de qualquer texto é considerado
comentário. O comentário fornece mais
informações sobre o script, explicação
lógica sobre o shell script.
$viginfo##
Anterior
[Obtenha o domínio Cyberciti por apenas Rs.445 com 2 e-mails grátis]
LSST v1.05r3 > Capítulo 2 > Como escrever script de shell
http://www.cyberciti.biz/pdf/lsst/ch02sec01.html (2 de 2) [29/07/2002 18:51:39]
[Anúncio]
Machine Translated by Google
LETRAS MAIÚSCULAS.
Nº de colunas para nossa tela
Nº de colunas para nossa tela
Próximo
SHELL=/bin/bash
a) $echo $HOME
PS1=[u@hW]$
Exercício:
Capítulo 2: Introdução à programação Shell
PATH=/usr/bin:/sbin:/bin:/usr/sbin
No Linux (Shell), existem dois tipos de variáveis:
Nosso nome de concha
Tutorial de script de shell do Linux (LSST) v1.05r3
um por vez).
BASH=/bin/bash
que é usado para armazenar nossos dados. O programador pode dar um nome exclusivo a este local/endereço de memória
LINHAS=25
Variável de sistema
Nossas configurações imediatas
das variáveis acima contém o seguinte:
Nosso tipo de sistema operacional
Nome de usuário que está atualmente conectado a este PC
Para processar nossos dados/informações, os dados devem ser mantidos na memória RAM do computador. A memória RAM é
letras mais baixas.
COLUNAS=80
BASH_VERSION=1.14.7(1)
(2) Variáveis definidas pelo usuário (UDV) - Criadas e mantidas pelo usuário. Este tipo de variável definida em
alunos Nosso nome de registro
NOME DE USUÁRIO=vivek
1) Se você deseja imprimir a localização do seu diretório inicial, dê o comando:
OU
(1) Variáveis de sistema - Criadas e mantidas pelo próprio Linux. Este tipo de variável definida em
Nosso nome de versão do shell
Anterior
Nosso diretório inicial
PWD=/home/alunos/Comum
OSTYPE=Linux
Nosso nome de concha
$echo $HOME
Significado
LOGNAME=alunos
Nosso diretório de trabalho atual
chamada variável de memória ou variável (é um local de armazenamento nomeado que pode assumir valores diferentes, mas apenas
$ echo $ NOME DE USUÁRIO
NOTA que algumas das configurações acima podem ser diferentes em seu ambiente PC/Linux. Você pode imprimir qualquer
dividido em pequenos locais, e cada local tinha um número único chamado local/endereço de memória,
Você pode ver as variáveis do sistema fornecendo comandos como $ set. Algumas das variáveis importantes do sistema são:
CASA=/casa/vivek
Nossas configurações de caminho
http://www.cyberciti.biz/pdf/lsst/ch02sec02.html (1 de 2) [29/07/2002 18:51:42]
LSST v1.05r3 > Capítulo 2 > Variáveis no Shell
Variáveis no Shell
Machine Translated by Google
Acima
Anterior Lar Próximo
Cuidado: Não modifique a variável do sistema, pois isso pode criar problemas em algum momento.
Como escrever script de shell
Qual dos comandos acima está correto e por quê? Clique aqui para responder.
(b) $ eco HOME
(UDV)
Como definir variáveis definidas pelo usuário
LSST v1.05r3 > Capítulo 2 > Variáveis no Shell
http://www.cyberciti.biz/pdf/lsst/ch02sec02.html (2 de 2) [29/07/2002 18:51:42]
Machine Translated by Google
nome da variável = valor
Sintaxe:
'valor' é atribuído a um determinado 'nome de variável' e o valor deve estar no lado direito = sinal.
Tutorial de script de shell do Linux (LSST) v1.05r3
$n=10
Anterior
Variáveis no shell
$vech=Ônibus
UDV e variável de sistema)
Para definir uma variável chamada n com valor 10
Para definir UDV use a seguinte sintaxe
$ 10=não # Erro, NÃO Ok, o valor deve estar no lado direito do sinal =.
Próximo
Próximo
Regras para nomear nomes de variáveis (ambos
Para definir a variável chamada 'vech' com valor Bus
Exemplo:
Capítulo 2: Introdução à programação Shell
Lar
Acima
Anterior
$ não = 10 # tudo bem
LSST v1.05r3 > Capítulo 2 > Como definir variáveis definidas pelo usuário (UDV)
http://www.cyberciti.biz/pdf/lsst/ch02sec03.html [29/07/2002 18:51:44]
(UDV)
Como definir variáveis definidas pelo usuário
Machine Translated by Google
(2) Não coloque espaços em ambos os lados do sinal de igual ao atribuir valor à variável. Por exemplo, na seguinte
declaração de variável não haverá erro $ no=10 Mas haverá
problema
para qualquer uma das seguintes declarações de variável: $ no =10 $ no= 10 $ no = 10
(1) O nome da variável deve começar com caractere alfanumérico ou sublinhado (_), seguido de um ou mais caracteres alfanuméricos.
Por exemplo, as variáveis de shell válidas são as seguintes HOME SYSTEM_VERSION vech
(3) As variáveis diferenciam maiúsculas de minúsculas, assim como o nome do arquivo
no Linux.
Por exemplo,
$ no=10 $
No=11 $
NO=20 $ nO=2 Acima de tudo estão nomes de variáveis diferentes, então para imprimir o valor 20 temos que usar $ echo $NO e
nenhum dos
seguintes $ echo $no # irá imprima 10, mas não 20
$ echo $No # imprimirá 11, mas não 20 $ echo $nO
# imprimirá 2, mas não 20
(5) Não use ?,* etc, para nomear seus nomes de variáveis.
Próximo
não
Anterior
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2:
Introdução à programação Shell
Tente imprimir seu valor emitindo o seguinte comando $ echo $vech
Nada será mostrado
porque a variável não tem valor, ou seja, variável NULL.
(4) Você pode definir a variável NULL da seguinte forma (variável NULL é uma variável que não tem valor no momento da definição)
Por exemplo, $ vech= $
vech=""
Próximo
Lar
Anterior
LSST v1.05r3 > Capítulo 2 > Regras para nomear nomes de variáveis (UDV e variáveis de sistema)
http://www.cyberciti.biz/pdf/lsst/ch02sec04.html (1 de 2) [29/07/2002 18:51:46]
Regras para nomear nomes de variáveis (ambos
UDV e variável de sistema)
Machine Translated by Google
(UDV)
Acima
Como imprimir ou acessar o valor do UDV
Como definir variáveis definidas pelo usuário
(Variáveis definidas pelo usuário)
http://www.cyberciti.biz/pdf/lsst/ch02sec04.html (2 de 2) [29/07/2002 18:51:46]
LSST v1.05r3 > Capítulo 2 > Regras para nomear nomes de variáveis (UDV e variáveis de sistema)
Machine Translated by Google
Para imprimir contém a variável 'vech' digite $
echo $vech
Defina a variável vech en da seguinte forma: $
vech=Bus $ n=10
Ele irá imprimir 'Bus', para imprimir contém a variável 'n' digite o comando da seguinte forma $
echo $n
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2:
Introdução à programação Shell
Para respostas clique aqui
Anterior Lar
Para imprimir ou acessar a UDV use a seguinte sintaxe
Q.5.Modifique acima e armazene a divisão de xey na variável chamada z Q.6.Aponte
o erro, se houver, no script a seguir
$ vi variscript # # # Script
para testar MEU conhecimento sobre variáveis! # meunome=Vivek myos = TroubleOS
myno=5 echo "Meu
nome é $meunome" echo
"Meu
sistema operacional é $myos" echo "Meu
número é myno, você pode ver este
número"
Sintaxe:
$nomedavariável
Q.2.Como definir a variável xn com valor Rani e imprimi-la na tela Q.3.Como imprimir a
soma de dois números, digamos 6 e 3?
Q.4.Como definir duas variáveis x=20, y=5 e depois imprimir a divisão de xey (ou seja, x/y)
Cuidado: Não tente $ echo vech, pois ele imprimirá vech em vez do valor 'Bus' e $ echo n, pois imprimirá n em vez do valor '10'.
Você deve usar $ seguido do nome da variável.
Anterior
Próximo
Próximo
Exercício
Q.1.Como definir a variável x com valor 10 e imprimi-la na tela.
http://www.cyberciti.biz/pdf/lsst/ch02sec05.html (1 de 2) [29/07/2002 18:51:48]
LSST v1.05r3 > Capítulo 2 > Como imprimir ou acessar o valor de UDV (variáveis definidas pelo usuário)
(Variáveis definidas pelo usuário)
Como imprimir ou acessar o valor do UDV
Machine Translated by Google
Acima
UDV e variável de sistema)
Regras para nomear nomes de variáveis (ambos
Comando de eco
LSST v1.05r3 > Capítulo 2 > Como imprimir ou acessar o valor de UDV (variáveis definidas pelo usuário)
http://www.cyberciti.biz/pdf/lsst/ch02sec05.html (2 de 2) [29/07/2002 18:51:48]
Machine Translated by Google
Opções
Acima
Exibe texto ou valor de variáveis na tela.
Tutorial de script de shell do Linux (LSST) v1.05r3
-n Não gera a nova linha final.
t guia horizontal
 barra invertida
Por exemplo, $ echo -e "Uma maçã por dia mantém longe attdoctorn"
Próximo
Use o comando echo para exibir texto ou valor da variável.
n nova linha
variáveis definidas)
r retorno de carro
echo [opções] [string, variáveis...]
Lar
b retrocesso
Anterior
Anterior
Como imprimir ou acessar o valor do UDV (User
Próximo
c suprimir a nova linha final
-e Habilite a interpretação dos seguintes caracteres de escape de barra invertida nas strings:
Capítulo 2: Introdução à programação Shell
Como exibir texto colorido na tela com efeitos de negrito ou piscar, como imprimir texto em qualquer linha ou coluna
Aritmética de casca
na tela, clique aqui para mais!
um alerta (sino)
http://www.cyberciti.biz/pdf/lsst/ch02sec06.html [29/07/2002 18:51:50]
LSST v1.05r3 > Capítulo 2 > Comando echo
Comando de eco
Machine Translated by Google
Para a última afirmação, não os seguintes pontos
Nota:
expr 20 %3 - Resto lido como 20 mod 3 e resto é 2. expr 10 * 3 - Multiplicação
use * e não * desde seu curinga.
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2:
Introdução à programação Shell
(1) Primeiro, antes da palavra-chave expr, usamos o sinal ` (aspas crases) e não o sinal (aspas simples, ou seja, '). Aspas atrás
geralmente são encontradas na tecla abaixo do til (~) no teclado do PC OU acima da tecla TAB.
Acima
Próximo
Mais sobre citações
Sintaxe:
expr op1 operador matemático op2
Comando de eco anterior
Lar
Exemplos: $
expr 1 + 3 $ expr 2 -
1 $ expr 10/2 $ expr
20% 3 $ expr 10 * 3 $
echo `expr 6 + 3`
(4) Aqui, se você usar aspas duplas ou simples, NÃO funcionará. Por exemplo, $
echo
"expr 6 + 3" # Irá imprimir expr 6 + 3 $ echo 'expr 6 +
3' # Irá imprimir expr 6 + 3
Próximo
Use para realizar operações aritméticas.
Consulte Substituição de parâmetros - Para economizar seu tempo.
(2) Em segundo lugar, expr também termina com `, ou seja, aspas anteriores.
Anterior
(3) Aqui expr 6 + 3 é avaliado como 9, então o comando echo imprime 9 como soma
http://www.cyberciti.biz/pdf/lsst/ch02sec07.html [29/07/2002 18:51:52]
LSST v1.05r3 > Capítulo 2 > Aritmética de Shell
Aritmética de casca
Machine Translated by Google
"Aspas Duplas" - Qualquer coisa colocada entre aspas duplas removeu o significado disso
Próximo
Significado
Tutorial de script de shell do Linux (LSST) v1.05r3
Caracteres de
aspas duplas (exceto  e $).
Exemplo:
$ echo "Hoje é data"
Não é possível imprimir a mensagem com a data de hoje.
Status de saída
Existem três tipos de citações
`
Lar
`Citação anterior` - Para executar o comando
Nome das citações
Acima
Citação anterior
Próximo
Anterior
Aritmética de casca
'
"
Capítulo 2: Introdução à programação Shell
$ echo "Hoje é `data`".
Ele imprimirá a data de hoje como Hoje é terça-feira, janeiro ..... Você pode ver que a instrução `date` usa aspas invertidas?
Anterior
Aspas simples 'Aspas simples' - Entre aspas simples permanece inalterado.
http://www.cyberciti.biz/pdf/lsst/ch02sec08.html [29/07/2002 18:51:53]
LSST v1.05r3 > Capítulo 2 > Mais sobre cotações
Mais sobre citações
Machine Translated by Google
Mas como descobrir o status de saída do comando ou script de shell?
Este valor é conhecido como Status de Saída.
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2:
Introdução à programação Shell
Simples, para determinar esse status de saída você pode usar $? variável especial do shell.
$echon$? $ eco
$?
$? variável útil, quer saber mais sobre essas variáveis do Linux, clique aqui para explorá-las!
(1) Se o valor de retorno for zero (0), o comando foi bem-sucedido.
$ oeste selvagem pode funcionar?
$ eco $?
$ data $
eco $?
(2) Se o valor de retorno for diferente de zero, o comando não foi bem-sucedido ou algum tipo de erro ao executar o comando/shell
script.
Exercício
Tente os seguintes comandos e não desça o status de saída: $ expr 1 +
3 $ echo $?
Anterior Próximo
$ echo Bem-vindo $ echo
$?
Por exemplo (este exemplo assume que unknow1file não existe em seu disco rígido) $ rm unknow1file
Ele mostrará o erro da
seguinte forma rm: não é possível
remover `unkowm1file': Esse arquivo ou diretório não existe e depois disso
se você der o comando $ echo $? ele
imprimirá
um valor diferente de zero para indicar erro. Agora dê o comando $ ls $ echo $?
Ele imprimirá 0 para indicar que o comando foi bem-sucedido.
Por padrão no Linux, se um determinado comando/shell script for executado, ele retornará dois tipos de valores que são usados
para ver se o comando ou shell script executado foi bem-sucedido ou não.
http://www.cyberciti.biz/pdf/lsst/ch02sec09.html (1 de 2) [29/07/2002 18:51:55]
LSST v1.05r3 > Capítulo 2 > Status de saída
Status de saída
Machine Translated by Google
Lar Próximo
Mais sobre citações
Anterior
Acima A declaração lida
http://www.cyberciti.biz/pdf/lsst/ch02sec09.html (2 de 2) [29/07/2002 18:51:55]
LSST v1.05r3 > Capítulo 2 > Status de saída
Machine Translated by Google
#
Seu primeiro nome, por favor: vivek
Anterior
Capítulo 2: Introdução à programação Shell
o teclado é armazenado (atribuído) à variável fname.
$ chmod 755 digaH
Curingas (abreviação de nome de arquivo ou meta
Tutorial de script de shell do Linux (LSST) v1.05r3
insere o nome no teclado (depois de fornecer o nome você deve pressionar a tecla ENTER) e insere o nome através
Execute-o da seguinte maneira:
leia variável1, variável2,...variávelN
Lar
leia nome
Use para obter entrada (dados do usuário) do teclado e armazenar (dados) na variável.
#
Anterior
Olá vivek, vamos ser amigos!
Próximo
#Script para ler seu nome no teclado
$ vi dizerH
$ ./digaH
Personagens)
Próximo
echo "Olá $fname, vamos ser amigos!"
Acima
O script a seguir primeiro pergunta ao usuário o nome e depois espera para inserir o nome do usuário por meio do teclado. Então usuário
Sintaxe:
echo "Seu primeiro nome, por favor:"
Status de saída
http://www.cyberciti.biz/pdf/lsst/ch02sec10.html [29/07/2002 18:51:56]
LSST v1.05r3 > Capítulo 2 > A instrução read
A declaração lida
Machine Translated by Google
$l é um*
extensão .c, mas o nome do arquivo deve
$ls ?
Próximo
$ ls /bin/[ac]*
$ls /bin/[!ao]
[..-..] Um par de caracteres separados por um sinal de menos indica um intervalo.
/bin/chgrp /bin/consolechars /bin/csh
Capítulo 2: Introdução à programação Shell
letras a,b,c
mostrará todos os arquivos
*
Exemplos
Tutorial de script de shell do Linux (LSST) v1.05r3
$ ls *.c
caracteres.
/Forma abreviada
têm 3 caracteres e nome de arquivo
extensão .c
Corresponde a qualquer um dos
/bin/arch /bin/awk /bin/bsh /bin/chmod /bin/ash /bin/nomebase /bin/cat /
bin/chown /bin/ash.static /bin/bash
Corresponde a qualquer caractere único.
$ls[abc]*
Se o primeiro caractere após [ for um ! ou um ^, então qualquer caractere não incluído será correspondido, ou seja, não
o nome começa com a letra 'a'
mostrará todos os arquivos cujos nomes
comece com 'ut'.
?
mostrará todos os arquivos cujo primeiro
[...]
$ ls /bin/[^ao]
Mas
Anterior
$ lsut*.c
mostrará todos os arquivos com
$ls*
Exemplo:
mostrará todos os arquivos começando com
Observação:
/bin/cpio
Corresponde a qualquer string ou grupo de
comece com fo
caracteres fechados
Significado
/bin/cp
Mostrará todos os nomes de arquivos começando com a letra a, b ou c como
mostre-nos o nome do arquivo que começa com a,b,c,e...o, como
Curinga
mostrará todos os arquivos com
têm 1 caractere mostrará
todos os arquivos cujos nomes
$ ls fo?
http://www.cyberciti.biz/pdf/lsst/ch02sec11.html (1 de 2) [29/07/2002 18:51:58]
LSST v1.05r3 > Capítulo 2 > Curingas (abreviação de nome de arquivo ou metacaracteres)
Curingas (abreviação de nome de arquivo ou meta
Personagens)
Machine Translated by Google
/bin/sh /bin/tcsh /bin/vi
/bin/sfxload /bin/tar /bin/usleep
/bin/ps /
bin/pwd /
bin/red /
bin/remadmin /bin/sed /bin/
rm /bin/
rmdir /bin/
rpm
Anterior
/bin/su /bin/uname /bin/ypdomainname
Mais comandos em uma linha de comando
/bin/setserial /bin/sync /bin/userconf /bin/zcat
Acima
/bin/classificar /bin/true /bin/wcomp
/bin/digaOlá /bin/stty /bin/umount /bin/xconf
Próximo
A declaração lida
/bin/rvi /
bin/rview
/bin/dormir /bin/tocar /bin/visualizar
Lar
http://www.cyberciti.biz/pdf/lsst/ch02sec11.html (2 de 2) [29/07/2002 18:51:58]
LSST v1.05r3 > Capítulo 2 > Curingas (abreviação de nome de arquivo ou metacaracteres)
Machine Translated by Google
Exemplos:
Para executar dois comandos com uma linha de comando.
Tutorial de script de shell do Linux (LSST) v1.05r3
$ data;quem
Lar
Acima
Próximo
Sintaxe:
Curingas (abreviação de nome de arquivo ou meta
Personagens)
comando1;comando2
para o mesmo propósito, você deve colocar ponto e vírgula entre a data e o comando who.
Próximo
Anterior
Irá imprimir a data de hoje seguida pelos usuários que estão logados no momento. Observe que você não pode usar
Capítulo 2: Introdução à programação Shell
Processamento de linha de comando
Anterior
$ data quem
http://www.cyberciti.biz/pdf/lsst/ch02sec12.html [29/07/2002 18:52:00]
LSST v1.05r3 > Capítulo 2 > Mais comandos em uma linha de comando
Mais comandos em uma linha de comando
Machine Translated by Google
Todo o resto na linha de comando é considerado argumento para este comando. Por exemplo
$ correio raj
eu
Anterior
3
correspondência
2
-r, -n e meuf
Capítulo 2: Introdução à programação Shell
grate_stories_of ?
$ mv y.bak y.ok
Comando
Tutorial de script de shell do Linux (LSST) v1.05r3
incitar. Agora surge mais uma pergunta : O que são comandos? O que aconteceu quando você digitou $ ls
$ cp e y.bak
OBSERVAÇÃO:
Ele imprimirá uma mensagem semelhante a - grate_stories_of: Esse arquivo ou diretório não existe.
Responder:
Tente determinar o comando e os argumentos dos seguintes comandos
1
y.bak e y.ok
mv
0
data
Tente o seguinte comando (supõe que o arquivo "grate_stories_of" não existe em seu sistema)
O nome do comando é tail e os argumentos são +10 e myf.
$ data
$ sort -r -n meuf
Próximo
$ cauda +10 myf
CP
0
cauda
A primeira palavra na linha de comando é ls - é o nome do comando a ser executado.
$ cauda -10 myf
Argumento real
1
organizar
(ou seja, $#)
2
Raj
$ ls foo
Nº de argumentos para este comando
2
ls é o nome de um comando real e o shell executou esse comando quando você digitou o comando no shell
-10 e meu Deus
$# contém o número de argumentos especificados na linha de comando. E $* ou $@ referem-se a todos os argumentos passados para
você e você.bak
claro
$ ls grate_stories_of
Exercício
$ claro
foo
http://www.cyberciti.biz/pdf/lsst/ch02sec13.html (1 de 2) [29/07/2002 18:52:02]
LSST v1.05r3 > Capítulo 2 > Processamento de linha de comando
Processamento de linha de comando
Machine Translated by Google
Mais comandos em uma linha de comando Acima
Anterior
roteiro.
Por que os argumentos da linha de comando são necessários
Lar Próximo
http://www.cyberciti.biz/pdf/lsst/ch02sec13.html (2 de 2) [29/07/2002 18:52:02]
LSST v1.05r3 > Capítulo 2 > Processamento de linha de comando
Machine Translated by Google
Vamos usar o comando ls
$ Ls -a /*
Este comando tem 2 argumentos de linha de comando -a e /* é outro. Para script de shell, $ myshell
foo bar
Aqui rm é o comando e filename é o arquivo que você deseja remover. Dessa forma, você segue o comando rm qual arquivo deseja
remover. Portanto, estamos fazendo comunicação unilateral com nosso comando, especificando o nome do arquivo. Além disso, você
pode passar argumentos de linha de comando para o seu script para torná-lo mais amigável. Mas como acessamos o argumento da linha de
comando em nosso script.
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução
à programação Shell
Nome do Shell Script, ou seja, myshell
Próximo
cara, é $ 1
barra custa $ 2
Vamos pegar o comando rm, que é usado para remover o arquivo, mas qual arquivo você deseja remover e como você dirá isso ao comando
rm (mesmo o comando rm não pergunta o nome do arquivo que você gostaria de remover). Então o que fazemos é escrever o comando
da seguinte forma: $ rm {nome do arquivo}
No shell, se quisermos nos referir a este argumento de linha de comando, nos referimos acima como segue
2. Informar ao utilitário/comando qual arquivo ou grupo de arquivos processar (leitura/gravação de arquivos).
Anterior
meu shell é $ 0
Primeiro argumento de linha de comando passado para myshell, ou seja, foo
1. Informar ao comando/utilitário qual opção usar.
Segundo argumento da linha de comando passado para myshell, ou seja, bar
http://www.cyberciti.biz/pdf/lsst/ch02sec14.html (1 de 3) [29/07/2002 18:52:05]
LSST v1.05r3 > Capítulo 2 > Por que argumentos de linha de comando são necessários
Por que os argumentos da linha de comando são necessário
Machine Translated by Google
O script a seguir é usado para imprimir o argumento ling do comando e mostrará como acessá-los:
#
matemática
$ cal
Aqui $# (variável embutida no shell) será 2 (já que foo e bar apenas dois argumentos), observe de cada vez
Nº de argumentos para o script
$#
1
Nº de argumentos (ou seja, $#),
4 GRANDE
$ matemática 4 - 7
11
echo "Todos eles são: - $* ou $@"
-5
2
parâmetros".
encontrarBS
3
Nome do script de shell ($0),
-
Nome do script de
shell $0
echo "O número total de argumentos da linha de comando é $#"
$ 1 $ 2 $ 3 $ 4 $ 5
`$1,$2...$9`). Observe que $1..$9, ou seja, argumentos de linha de comando para shell script, são conhecidos como "posicionais
meu +20
24
4
#!/bin/sh
soma
$Ls*
echo "$2 é o segundo argumento"
cal
Tente escrever o seguinte para comandos
0
$ soma 11 20
#
7
Responder
echo "$1 é o primeiro argumento"
Ls
Argumento real ($1,..$9)
esses 9 argumentos podem ser usados de $1..$9. Você também pode referir todos eles usando $* (que se expande para
20
$ bp -5 myf +20
$ vi demonstração
# Script que demonstra, argumentos de linha de comando
$ encontrarBS 4 8 24 GRANDE
d
8
0
E argumento real (ou seja, $ 1, $ 2 etc.)
4
$ d
echo "$0 é o nome do script"
bp
*
3
Exercício
Execute-o da seguinte maneira
http://www.cyberciti.biz/pdf/lsst/ch02sec14.html (2 de 3) [29/07/2002 18:52:05]
LSST v1.05r3 > Capítulo 2 > Por que argumentos de linha de comando são necessários
Machine Translated by Google
Portanto, todas as instruções no shell script são inválidas: $1 = 5 $2 =
"My
Name"
Verifique se está funcionando ou não (?) $ demo $
demo Olá
Mundo
Observe também que você não pode atribuir o novo valor aos argumentos da linha de comando, ou seja, parâmetros posicionais.
Lar
Se o teste for bem-sucedido, copie o script para seu próprio diretório bin (instale o script para uso privado) $ cp
demo ~/bin
NOTA: Depois disso, para qualquer script você terá que usar o comando acima, em sequência, não vou mostrar todos os comandos acima
para o restante do Tutorial.
Execute-o e teste-o da seguinte
maneira: $ ./demo Hello World
Defina a permissão de execução da seguinte
forma: $ chmod 755 demo
Anterior
Acima
Próximo Redirecionamento de saída/entrada
padrão ieInput - Redirecionamento de sa
Processamento de linha de comando
http://www.cyberciti.biz/pdf/lsst/ch02sec14.html (3 de 3) [29/07/2002 18:52:05]
LSST v1.05r3 > Capítulo 2 > Por que argumentos de linha de comando são necessários
Machine Translated by Google
Existem três símbolos principais de redirecionamento >,>>,<
$ ls > nome do
arquivo Significa colocar a saída do comando ls no nome do arquivo.
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução
à programação Shell
(1) > Sintaxe do símbolo do
redirecionador: comando Linux > nome
do arquivo Para gerar o resultado dos comandos Linux (saída do comando ou script shell) para o arquivo. Observe que se o arquivo já existir, ele
será sobrescrito, caso contrário, um novo arquivo será criado. Por exemplo, para enviar a saída do comando ls, dê $ ls > myfiles Agora, se
o arquivo 'myfiles'
existir em seu diretório atual, ele será sobrescrito sem qualquer tipo de aviso.
Crie um nome de arquivo de texto da seguinte maneira
Quase todos os comandos fornecem saída na tela ou recebem entrada do teclado, mas no Linux (e também em outros sistemas operacionais) é possível
enviar a saída para um arquivo ou ler a entrada do arquivo.
Clique aqui para saber mais sobre Redirecionamento de E/S
Você também pode usar os redirecionadores acima simultaneamente da seguinte maneira
Por
exemplo, o comando $ ls fornece saída para a tela; para enviar a saída para o arquivo do comando ls dê o comando
ele será aberto e novas informações/dados serão gravados no FIM do arquivo, sem perder os anteriores
,
(2) >> Sintaxe do símbolo do
redirecionador: comando Linux >> nome
do arquivo Para gerar o resultado dos comandos Linux (saída do comando ou script shell) para o FIM do arquivo. Observe que se o arquivo existir
informações/dados, e se o arquivo não existir, um novo arquivo será criado. Por exemplo, para enviar a saída do comando date para um
arquivo já existente, dê o comando $ date >> meus arquivos
Anterior
(3) < Sintaxe do símbolo do
redirecionador: comando Linux <nome
do arquivo Para obter entrada para o comando Linux do arquivo em vez do teclado. Por exemplo, para obter entrada para o comando cat, dê $ cat
<myfiles
Próximo
LSST v1.05r3 > Capítulo 2 > Redirecionamento de saída/entrada padrão, ou seja, redirecionamento de entrada - saída
http://www.cyberciti.biz/pdf/lsst/ch02sec15.html (1 de 2) [29/07/2002 18:52:06]
Entrada - Redirecionamento de saída
Redirecionamento de saída/entrada padrão, ou seja
Machine Translated by Google
O comando tr é usado para traduzir todos os caracteres minúsculos em letras maiúsculas. Ele recebe a entrada do arquivo
sname e a saída do tr é redirecionada para o arquivo cap_names.
BABU
$cat > sname
vivek
ashish
zebra
babu
Pressione CTRL + D para salvar.
Ponto Futuro: Tente seguir o comando e descubra o ponto mais importante: $ sort >
new_sorted_names <sname $ cat
new_sorted_names
CINZA
Próximo
Cano
ZEBRA
Lar
Experimente mais um exemplo para esclarecer
sua ideia: $ tr "[az]" "[AZ]" < sname > cap_names $
cat cap_names
VIVEK
Acima
Anterior
Agora emita o seguinte comando. $ sort
<sname> nomes_classificados $ cat
nomes_classificados
ashish
babu
vivek
zebra
No exemplo acima, o comando sort ($ sort <sname> sorted_names) recebe a entrada do arquivo sname e a saída do
comando sort (ou seja, nomes classificados) é redirecionada para o arquivo sorted_names.
Por que os argumentos da linha de comando são necessários
http://www.cyberciti.biz/pdf/lsst/ch02sec15.html (2 de 2) [29/07/2002 18:52:06]
LSST v1.05r3 > Capítulo 2 > Redirecionamento de saída/entrada padrão, ou seja, redirecionamento de entrada - saída
Machine Translated by Google
Comando usando Pipes
Exemplos:
Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2:
Introdução à programação Shell
Significado ou uso de tubos A
saída do comando ls é fornecida como entrada para o
comando more, para que a saída seja impressa em uma página
inteira de tela por vez.
Pipe Definido como:
"Um pipe nada mais é do que um local de armazenamento temporário onde a saída de um comando é armazenada e depois
passada como entrada para o segundo comando. Pipes são usados para executar mais de dois comandos (vários comandos)
na mesma linha de comando. "
$ quem | wc-l
$ ls -l | wc-l
Sintaxe:
comando1 | comando2
$ quem | organizar
Um pipe é uma forma de conectar a saída de um programa à entrada de outro programa sem nenhum arquivo temporário.
$ quem | classificar> lista_usuários
A saída do comando who é fornecida como entrada para o
comando sort Para que ele imprima a lista classificada de
usuários O mesmo que acima, exceto que a saída do sort
é enviada para (redirecionado)
o arquivo user_list A saída do comando who é fornecida
como entrada para o comando wc Para que ele imprimir o
número do usuário
que faz logon no sistema A saída do comando ls é
fornecida como entrada para o comando wc Para que ele
imprima o número de arquivos no diretório atual.
Anterior
$ ls | mais
Próximo
LSST v1.05r3 > Capítulo 2 > Tubulações
http://www.cyberciti.biz/pdf/lsst/ch02sec16.html (1 de 2) [29/07/2002 18:52:08]
Tubos
Machine Translated by Google
ieInput - Redirecionamento de saída
determinado usuário está logado ou não)
Anterior Redirecionamento de saída/entrada padrão
Lar
nome se ele está logado ou nada está impresso (Ver
$ quem | grep raju
comando Para que ele imprima se um usuário específico
A saída do comando who é fornecida como entrada para grep
Acima
Próximo
Filtro
http://www.cyberciti.biz/pdf/lsst/ch02sec16.html (2 de 2) [29/07/2002 18:52:08]
LSST v1.05r3 > Capítulo 2 > Tubulações
Machine Translated by Google
contém da linha número 20 à linha número 30 e armazene esse resultado em um arquivo chamado 'hlist' e depois forneça
Suponha que você tenha um arquivo chamado 'hotel.txt' com dados de 100 linhas e de 'hotel.txt' você gostaria de imprimir
Tutorial de script de shell do Linux (LSST) v1.05r3
comando:
Aqui uniq é o filtro que recebe sua entrada do comando sort e passa essas linhas como entrada para uniq; Então
A saída do uniqs é redirecionada para o arquivo "u_sname".
Anterior
Se um comando do Linux aceitar sua entrada da entrada padrão e produzir sua saída na saída padrão
Considere mais um exemplo a seguir
O que são processos
$ sort < nome | uniq > seu_nome
é conhecido como filtro. Um filtro executa algum tipo de processo na entrada e fornece saída. Por exemplo.
linha número 20 de determinado arquivo, ou seja, hotel.txt) e passa essas linhas como entrada para head, cuja saída é
Próximo
Acima
Próximo
redirecionado para o arquivo 'hlist'.
$ tail +20 < hotel.txt | head -n30 >hlista
Capítulo 2: Introdução à programação Shell
Tubos
Lar
Aqui o comando head é o filtro que recebe sua entrada do comando tail (o comando tail começa a selecionar em
Anterior
http://www.cyberciti.biz/pdf/lsst/ch02sec17.html [29/07/2002 18:52:09]
LSST v1.05r3 > Capítulo 2 > Filtro
Filtro
Machine Translated by Google
processo.
Comando ls ou uma solicitação para listar arquivos em um diretório e todos os subdiretórios em seu diretório atual - é um
Tutorial de script de shell do Linux (LSST) v1.05r3
Processo definido como:
Próximo
Por que o processo é necessário
Processo é um tipo de programa ou tarefa realizada pelo seu PC. Por exemplo
Lar
Acima
$ ls -lR
Anterior
Próximo
Filtro
"Um processo é um programa (comando dado pelo usuário) para realizar um trabalho específico. No Linux, quando você inicia
Capítulo 2: Introdução à programação Shell
processo, fornece um número para processar (chamado PID ou process-id), o PID começa de 0 a 65535."
Anterior
http://www.cyberciti.biz/pdf/lsst/ch02sec18.html [29/07/2002 18:52:11]
LSST v1.05r3 > Capítulo 2 > O que são processos
O que são processos
Machine Translated by Google
$ls/-R | wc-l
comando como:
Tutorial de script de shell do Linux (LSST) v1.05r3
Este comando levará muito tempo para pesquisar todos os arquivos do seu sistema. Então você pode executar esse comando em
(PID), este PID pode ser usado para se referir a um processo específico em execução."
Anterior
O que são processos
Como você sabe, o Linux é um sistema operacional multiusuário e multitarefa. Isso significa que você pode executar mais de dois processos
Processo e PID definidos como:
"Uma instância do comando em execução é chamada de processo e o número impresso pelo shell é chamado de process-id
simultaneamente, se desejar. Por exemplo, para descobrir quantos arquivos você tem em seu sistema, você pode fornecer
O e comercial (&) no final do comando informa aos shells para iniciar o processo (ls / -R | wc -l) e executá-lo em
Anterior
Próximo
Comando(s) do Linux relacionados ao processo
Próximo
background executa o próximo comando imediatamente.
Em segundo plano ou simultaneamente, dando um comando como
Capítulo 2: Introdução à programação Shell
Lar
Acima
$ls/-R | wc -l&
http://www.cyberciti.biz/pdf/lsst/ch02sec19.html [29/07/2002 18:52:12]
LSST v1.05r3 > Capítulo 2 > Por que o processo é necessário
Por que o processo é necessário
Machine Translated by Google
Comando Linux relacionado ao processo
Em relação a esta situação, responda à seguinte questão:
process
Para interromper todos os processos, exceto seu shell kill
0 Para processamento em segundo plano (com &,
$ killall httpd
se o servidor web Apache
Próximo
e outras informações como memória
combinação com o comando grep
Você está trabalhando em sua estação de trabalho Linux (pode estar aprendendo LSST ou algum outro trabalho como enviar
Capítulo 2: Introdução à programação Shell
ps aux
kill process
Para parar processos por nome, ou seja, para matar
obs:
Tutorial de script de shell do Linux (LSST) v1.05r3
Para ver o processo atualmente em execução
Para parar qualquer processo por PID, ou seja, para
$ matar 1012
NOTA que você só pode encerrar processos criados por você. Um administrador quase pode matar
Use este comando
comando linux &
processos junto com os processos
Para ver se um determinado processo é
$ ps machado | grep httpd
machado ps | grep process-U-quer-ver
atualizações.
pstree
As tabelas a seguir são os comandos mais comumente usados com o processo:
programa em segundo plano)
$ matar 0
$ ps -ag
use para colocar um comando específico e
o processo está em execução ou não
e uso da CPU em tempo real
$pstree
e-mails, digitando carta), enquanto fazia esse trabalho você começou a reproduzir arquivos MP3 em sua estação de trabalho.
killall {Nome do processo} processo
Para obter
informações sobre todos os processos em execução
matar {PID}
Anterior
Por exemplo, você quer ver
Para ver os processos atualmente em execução
$ps aux
tem que usar o comando ps em
principal
Exercício:
$ps
$ls/-R | wc -l&
correndo ou não. Para este propósito você
Exemplos*
$ superior
Processo de 95-98%. Mas alguns processos não podem ser eliminados, como o processo VDU.
Para exibir uma árvore de processos
* Para executar parte deste comando você precisa ser usuário root ou equivalente.
Para este propósito
Para exibir o proprietário do
ps-ag
então dê o comando
http://www.cyberciti.biz/pdf/lsst/ch02sec20.html (1 de 2) [29/07/2002 18:52:14]
LSST v1.05r3 > Capítulo 3 > Comando Linux relacionado ao processo
Veja a saída do comando superior.
comando pressione q.
Observe que para sair do topo
Machine Translated by Google
Por que o processo é necessário
4) Você não deseja ouvir música (arquivos MP3), mas deseja continuar com outro trabalho no PC, você executará uma das seguintes ações: 1.
Desligue os alto-falantes 2. Desligue o
computador / desligue o
sistema operacional Linux 3. Mate o processo de reprodução
de MP3 4. Nenhuma das opções acima
Anterior Lar
2) Como você descobrirá o processo de execução (reprodução de MP3 e digitação de letras)?
Clique aqui para obter respostas.
3) "Atualmente apenas dois processos estão rodando em seu ambiente Linux/PC", É Verdadeiro ou Falso?, E como você irá verificar isso?
1) É um exemplo de multitarefa?
Acima
Próximo
Construções
Linguagem estruturada Shells (bash)
LSST v1.05r3 > Capítulo 3 > Comando Linux relacionado ao processo
http://www.cyberciti.biz/pdf/lsst/ch02sec20.html (2 de 2) [29/07/2002 18:52:14]
Machine Translated by Google
decisões. O que o computador sabe é 0 (zero) e 1 que é Sim ou Não. Para deixar essa ideia clara, vamos jogar
5/2
mostrando 0 (Zero). Lembre-se de que em bc, a expressão relacional sempre retorna verdadeiro (1) ou falso (0 - zero).
Anterior
5 é igual a 10
5 == 10
Significado para nós Resposta do BC
Capítulo 3: Construções de linguagem estruturada de shells (bash)
Existe alguma diferença na tomada de decisões na vida real e nos computadores? Bem, as decisões da vida real são bastante
7 é a resposta de bc, ou seja, adição de 5 + 2, você pode até tentar
0
Tutorial de script de shell do Linux (LSST) v1.05r3
• Ciclos
7
construções de linguagem como:
1 (Um?) é a resposta de bc, Como? bc compare 5 com 2, pois 5 é maior que 2, (se eu fizer a mesma pergunta para
digite 5 + 2 como:
5! = 2
NÃO
5 > 12
Expressão 5
> 12
0
Tomar decisões é uma parte importante na vida do ONCE, bem como no programa orientado pela lógica dos computadores. Na verdade
$bc
5 > 2
Veja o que aconteceu se você digitar 5 > 2 da seguinte maneira
Próximo
algum jogo (UAU!) com bc - programa de calculadora Linux.
Tente seguir o bc para esclarecer sua ideia e não anular a resposta do bc
5 NÃO é igual a 2
0
complicado para todos nós e os computadores ainda não têm tanto poder para entender nossa vida real
5 - 2
0 (Zero) indica falso, ou seja, 5 é menor que 2?, Sua resposta será não, o que é indicado por bc por
5 é maior que 12
5! = 2
5 <2
12 <2
SIM
5 + 2
você, sua resposta será SIM), bc dá esta resposta 'SIM' mostrando 1 valor. Agora tente
5 == 5
• Tomada de decisão
NÃO
sua Resposta
1
a lógica não é LÓGICA até que você use a tomada de decisão. Este capítulo apresenta a estrutura estruturada do bash
Depois que este comando bc for iniciado e aguardando seus comandos, ou seja, faça alguns cálculos como segue
1
5 == 10
LSST v1.05r3 > Capítulo 3 > Introdução
http://www.cyberciti.biz/pdf/lsst/ch03.html (1 de 2) [29/07/2002 18:52:15]
Introdução
Machine Translated by Google
Significado
Valor
Anterior
1 é menor que 2
1 < 2
No valor do shell do Linux
não zero
0
5 == 5
1
Não/Falso
Sim
Falso/Não
-1, 32, 55 tudo menos
Próximo
Lar
e NÃO é outro.
Exemplo
Mostrado no Linux Shell como
Mostrado em bc como
Significa que sempre que houver algum tipo de comparação no Linux Shell dá apenas duas respostas, uma é SIM
Sim, verdade
Comando(s) do Linux relacionados ao processo
5 é igual a 5
Lembre-se de que tanto o bc quanto o Linux Shell usam maneiras diferentes de mostrar valores Verdadeiro/ Falso
Valor Zero (0)
Valor diferente de zero
0
Valor diferente de zero
1
se condição
1
SIM
0
Verdadeiro/Sim
Acima
http://www.cyberciti.biz/pdf/lsst/ch03.html (2 de 2) [29/07/2002 18:52:15]
LSST v1.05r3 > Capítulo 3 > Introdução
Machine Translated by Google
comando1 se a condição for verdadeira ou se o status de saída da condição for 0 (zero)
então
Tutorial de script de shell do Linux (LSST) v1.05r3
Capítulo 3: Construções de linguagem estruturada de shells (bash)
...
Digite os seguintes comandos (supõe que você tenha um arquivo chamado
foo) $ cat
foo $ echo $?
O comando cat retorna zero (0), ou seja, status de saída, em caso de sucesso, isso pode ser usado, na condição if a seguir,
Escreva o script shell como
Sintaxe:
Expressão é definida como:
"Uma expressão nada mais é do que uma combinação de valores, operadores relacionais (como >,<, <>
etc) e operadores matemáticos (como +, -, / etc)."
A seguir estão todos os exemplos de expressão: 5
> 2 3
+ 6 3
* 65 a
< bc
> 5 c
> 5 + 30 -1
se condição
Condição é definida como:
"Condição nada mais é do que comparação entre dois valores."
se a condição usada para tomada de decisão no shell script, se a condição fornecida for verdadeira, o comando1 será executado.
Para compactação, você pode usar instruções test ou [expr] ou até mesmo o status existente também pode ser usado.
...
Anterior Próximo
fi
http://www.cyberciti.biz/pdf/lsst/ch03sec01.html (1 de 3) [29/07/2002 18:52:16]
LSST v1.05r3 > Capítulo 3 > se condição
se condição
Machine Translated by Google
# Script para testar o comando rm e status existente # if rm $1
gato > trmif #
$ cat > showfile #!/bin/sh #
#Script para
imprimir o arquivo # if cat $1
então
Anterior Lar Próximo
Exercício
(C) E se você digitar $ ./trmfi Qual será a saída?
Para resposta clique aqui.
Escreva o script shell da seguinte maneira:
Responda à seguinte pergunta com referência ao script acima: (A) o arquivo
foo existe em seu disco e você dá o comando, $ ./trmfi foo qual será a saída?
Execute o script acima
como: $ chmod 755 showfile
$./showfile foo O
nome do script do shell é showfile ($0) e foo é o argumento (que é $1). Em seguida, compare-o como segue: if cat $1 que é expandido
para if cat foo.
Explicação detalhada se o
comando cat encontrar o arquivo foo e se for mostrado com sucesso na tela, significa que nosso comando cat foi bem-sucedido
e seu status de existência é 0 (indica sucesso). Portanto, nossa condição if também é verdadeira e, portanto, a instrução echo -e "n
nArquivo $1, encontrado e ecoado com sucesso" é processado pelo shell. Agora, se o comando cat não for bem-sucedido, ele
retornará um valor diferente de zero (indica algum tipo de falha) e esta instrução echo -e "nnArquivo $1, encontrado e ecoado
com sucesso" será ignorada pelo nosso shell.
(B) Se o arquivo bar não estiver presente em seu disco e você der o comando $ ./trmfi bar , o que será gerado?
echo "$1 arquivo excluído" fi
então
echo -e "nnArquivo $1, encontrado e ecoado com sucesso" fi
Pressione Ctrl + d para
salvar $ chmod 755 trmif
http://www.cyberciti.biz/pdf/lsst/ch03sec01.html (2 de 3) [29/07/2002 18:52:16]
LSST v1.05r3 > Capítulo 3 > se condição
Machine Translated by Google
Acima
Construções
Linguagem estruturada Shells (bash)
comando de teste ou [expr]
http://www.cyberciti.biz/pdf/lsst/ch03sec01.html (3 de 3) [29/07/2002 18:52:16]
LSST v1.05r3 > Capítulo 3 > se condição
Machine Translated by Google
echo "$1 número é positivo" fi
$ cat > ispositivo #!/bin/sh # # Script
para ver se o
argumento é positivo # if test $1 -gt 0 then
Tutorial de script de shell do Linux (LSST) v1.05r3
Capítulo 3: Construções de linguagem estruturada de shells (bash)
Execute-o da seguinte
maneira: $ chmod 755 ispostive
,
para evitar tal erro, podemos testar se o argumento da linha de comando
,
Sintaxe:
expressão de teste OU [expressão]
Explicação detalhada
A linha, if test $1 -gt 0 test para ver se o primeiro argumento da linha de comando ($1) é maior que 0. Se for verdadeiro
(0), então o teste retornará 0 e a saída será impressa como 5, o número é positivo, mas para Argumento -45, não há
saída porque nossa condição não é verdadeira (0) (nenhum -45 não é maior que 0), portanto, a instrução echo é ignorada.
E para a última instrução não fornecemos nenhum argumento, portanto, erro ./ispostive: test: -gt: operador unário
esperado, é gerado pelo shell é fornecido ou
não.
Exemplo:
o script a seguir determina se o número do argumento fornecido é positivo.
Nada é impresso
O comando test ou [expr] é usado para ver se uma expressão é verdadeira e, se for verdadeira, retorna zero (0), caso contrário,
retorna diferente de zero para falso.
$ispostive ./
ispostive: teste: -gt: operador unário esperado
$ ispostive 5
5 número é positivo
Anterior
test ou [expr] funciona com
1.Integer (Número sem ponto decimal)
2.Tipos de arquivo
3.Sequências de caracteres
Próximo
$ispositivo -45
http://www.cyberciti.biz/pdf/lsst/ch03sec02.html (1 de 3) [29/07/2002 18:52:17]
LSST v1.05r3 > Capítulo 3 > comando de teste ou [expr]
comando de teste ou [expr]
Machine Translated by Google
Shell também testa tipos de arquivos e diretórios
declaração com
Operadores lógicos são usados para combinar duas ou mais condições ao mesmo tempo
string1 string1 NÃO é NULL ou não está definida -n string1 string1 NÃO
é NULL e existe
-ge
-d diretório
se [5 -ne 6]
ou igual a
Lógico NÃO
Significado
Para comparações de strings, use
-ne
Aritmética Normal/
É um arquivo gravável
-x arquivo
se [5 -ge 6]
se teste 5 -gt 6
declaração com
-w arquivo
se [5 -le 6]
se [5 -lt 6]
se comando
É um arquivo somente leitura
Significado do Operador
Matemático
-lt
se teste 5 -ge 6
se comando
Teste
Lógico E
é igual a não
é igual a 5! = 6 é menor que
5 <6
Matemático
Arquivo não vazio
5 <= 6
se [5 -gt6]
Significado
-r arquivo
O arquivo é executável
string1 = string2 string1 é igual a string2
-le
Declarações
O arquivo existe ou é um arquivo normal e não um diretório
-s arquivo
é menor que ou
se teste 5 -eq 6
se teste 5 -ne 6
-z string1 string1 é NULL e existe
se teste 5 -lt 6
5 == 6
Operador no Shell
5 >= 6
Operador !
expressão
expressão1 -uma expressão2
Operadores lógicos
-gt
Para teste
Para matemática, use o seguinte operador no Shell Script
Mas na Shell
string1 != string2 string1 NÃO é igual a string2
-f arquivo
igual a é
maior que 5 > 6 é maior que
se [5 -eq 6]
NOTA: == é igual, != não é igual.
-eq
Roteiro
O diretório existe e não é um arquivo
Para [expr]
se teste 5 -le 6
Significado
LSST v1.05r3 > Capítulo 3 > comando de teste ou [expr]
http://www.cyberciti.biz/pdf/lsst/ch03sec02.html (2 de 3) [29/07/2002 18:52:17]
Machine Translated by Google
Próximo
comando)
Acima se...senão...fi
Anterior Tomada de decisão em shell script (ou seja, se
Lar
OU lógico
expressão1 -o expressão2
http://www.cyberciti.biz/pdf/lsst/ch03sec02.html (3 de 3) [29/07/2002 18:52:17]
LSST v1.05r3 > Capítulo 3 > comando de teste ou [expr]
Machine Translated by Google
a condição é zero (verdadeiro - 0) execute todos os
comandos até a instrução else
então
Tutorial de script de shell do Linux (LSST) v1.05r3
Capítulo 3: Construções de linguagem estruturada de shells (bash)
se a condição não for verdadeira, execute todos os
comandos até fi
echo "$1 número é positivo" else
echo "$1 número é negativo" fi
Experimente da seguinte
maneira: $ chmod 755 isnump_n
Próximo
echo "$0: Você deve fornecer/fornecer um número inteiro" exit 1 fi
se testar $1 -gt 0 então
se condição
Por exemplo, escreva o script da seguinte maneira:
Sintaxe:
Anterior
$ vi isnump_n #!/bin/sh # #
Script para ver se
o
argumento é positivo ou negativo # if [ $# -eq 0 ] then
outro
$ isnump_n 5 5
número é positivo
$ isnump_n -45
Se a condição fornecida for verdadeira, o comando1 será executado, caso contrário, o comando2 será executado.
fi
http://www.cyberciti.biz/pdf/lsst/ch03sec03.html (1 de 4) [29/07/2002 18:52:18]
LSST v1.05r3 > Capítulo 3 > if...else...fi
se...senão...fi
Machine Translated by Google
A última amostra executada $ isnump_n 0 fornece a saída como "0 número é negativo", porque o argumento fornecido não é> 0, portanto,
a condição é falsa e é considerada um número negativo. Para evitar isso, substitua a segunda instrução if por if test $1 -ge 0.
-45 número é negativo
Você pode escrever toda a construção if-else no corpo da instrução if ou no corpo de uma instrução else. Isso é chamado de aninhamento
de ifs.
| | 2
echo "Você escolhe Unix (Sun Os)"
else #### aninhado if, ou seja, se dentro de if ######
1 imprimirá o nome do script 2
imprimirá esta mensagem de erro E,
finalmente, a instrução exit 1 causa o encerramento normal do programa com status de saída 1 (diferente de zero significa que o
script não foi executado com êxito).
se [$osch -eq 1]
Explicação detalhada O
primeiro script verifica se o argumento da linha de comando é fornecido ou não, se não for fornecido, ele imprime a mensagem de
erro como "./ ispos_n: Você deve fornecer/ fornecer um número inteiro". A instrução if verifica se o número de argumentos ($#)
passados para o script não é igual (-eq) a 0, se passamos algum argumento para o script, então esta instrução if é falsa e se nenhum
argumento de linha de comando for fornecido, então esta instrução if é verdadeiro. O comando echo, ou seja, echo "$0: Você deve
fornecer/fornecer
um número inteiro"
| | 1
; então
$ vi nestedif.sh osch=0
$ isnump_n ./
ispos_n : Você deve fornecer/ fornecer um número inteiro
echo "1. Unix (Sun Os)" echo "2. Linux (Red
Hat)" echo -n "Selecione sua escolha de sistema
operacional [1 ou 2]?" leia osch
$ isnump_n 0 0
número é negativo
http://www.cyberciti.biz/pdf/lsst/ch03sec03.html (2 de 4) [29/07/2002 18:52:18]
LSST v1.05r3 > Capítulo 3 > if...else...fi
If-else-fi aninhado
Machine Translated by Google
$ ./nestedif.sh
1. Unix (Sun Os)
então
outro
echo "O que você não gosta do sistema operacional Unix/Linux."
; então
ecoe "Você escolhe Linux (Red Hat)"
2. Linux (Chapéu Vermelho)
então
fazem isto
se [$osch -eq 2]
$ ./nestedif.sh
1. Unix (Sun Os)
se condição
2. Linux (Chapéu Vermelho)
outro
Você também pode usar os ifs aninhados da seguinte maneira:
fi
Selecione sua opção [1 ou 2]? 3 O que
você não gosta do sistema operacional Unix/ Linux.
..
.....
fi
2. Linux (Chapéu Vermelho)
outro
se condição
Selecione sua opção [1 ou 2]? 2
Você escolhe Linux (Red Hat)
fi
..
Sintaxe:
....
Selecione sua opção [1 ou 2]? 1
Você escolhe Unix (Sun Os)
Execute o script de shell acima da seguinte
maneira: $ chmod +x
nestedif.sh $ ./
nestedif.sh 1. Unix (Sun Os)
Observe que a segunda construção if-else está aninhada na primeira instrução else . Se a condição na primeira instrução
if for falsa, a condição na segunda instrução if será verificada. Se também for falso, a instrução else final será executada.
fazem isto
http://www.cyberciti.biz/pdf/lsst/ch03sec03.html (3 de 4) [29/07/2002 18:52:18]
LSST v1.05r3 > Capítulo 3 > if...else...fi
Machine Translated by Google
Acima
fi
Lar Próximo
fazem isto
Comando de teste anterior ou [expr]
.....
...
Multinível if-then-else
http://www.cyberciti.biz/pdf/lsst/ch03sec03.html (4 de 4) [29/07/2002 18:52:18]
LSST v1.05r3 > Capítulo 3 > if...else...fi
Machine Translated by Google
condição de Elif1
a condição é zero (verdadeiro - 0) execute todos os
comandos até a instrução elif
Tutorial de script de shell do Linux (LSST) v1.05r3
Capítulo 3: Construções de linguagem estruturada de shells (bash)
então
fi
Para instrução if-then-else multinível, tente o seguinte script:
$ cat > elf # #!/bin/sh
# Script para
testar if..elif...else # if [ $1 -gt 0 ]; então
se condição
outro
Nenhuma das condições acima, condição1, condição2 são verdadeiras (ou seja, todas as anteriores diferentes de zero
ou falsas) execute todos os comandos até fi
então
então
Próximo
Sintaxe:
condição2 é zero (verdadeiro - 0) execute todos os
comandos até a instrução elif
condição1 é zero (verdadeiro - 0) execute todos os
comandos até a instrução elif
echo "$1 é positivo" elif [ $1 -lt 0 ] então
echo "$1 é negativo" elif [ $1 -eq
0 ] então
echo "$1 é zero" else echo "Ops! $1 não é
número, dê o número" fi
Tente o script acima da seguinte
maneira: $ chmod
755 elf
$ ./elf 1
$ ./elf -2
$ ./elf 0
$ ./elf a Aqui o/p para a última
execução de amostra: ./elf: [: -gt: unary
operador esperado ./elf: [: -lt: operador
unário esperado ./elf: [: -eq: operador unário
esperado Ops! a não é número, dê o número
condição de Elif2
Anterior
http://www.cyberciti.biz/pdf/lsst/ch03sec04.html (1 de 2) [29/07/2002 18:52:19]
LSST v1.05r3 > Capítulo 3 > Multinível if-then-else
Multinível if-then-else
Machine Translated by Google
Anterior if...else...fi Acima
esperado" ocorre, mas ainda assim nosso programa notifica esse erro ao usuário fornecendo a mensagem "Opps! a não é um número, dê um número".
O programa acima apresenta erro na última execução, aqui a comparação de inteiros é esperada, portanto, erros como "./ elf: [: -gt: operador unário
Loops em scripts de shell
Lar Próximo
LSST v1.05r3 > Capítulo 3 > Multinível if-then-else
http://www.cyberciti.biz/pdf/lsst/ch03sec04.html (2 de 2) [29/07/2002 18:52:19]
Machine Translated by Google
Bash suporta:
grupo de instruções que é executado repetidamente é chamado de loop."
Tutorial de script de shell do Linux (LSST) v1.05r3
• loop for
Multinível if-then-else
Lar
Acima
Laço definido como:
(c) O corpo do loop termina com uma instrução que modifica o valor da variável de teste (condição).
Anterior
“O computador pode repetir instruções específicas continuamente, até que uma condição específica seja satisfeita.
(a) Primeiro, a variável usada na condição do loop deve ser inicializada e, em seguida, a execução do loop começa.
Anterior Próximo
(b) Um teste (condição) é feito no início de cada iteração.
• ciclo while
Capítulo 3: Construções de linguagem estruturada de shells (bash)
Próximo
para loop
Observe que em cada loop,
http://www.cyberciti.biz/pdf/lsst/ch03sec05.html [29/07/2002 18:52:23]
LSST v1.05r3 > Capítulo 3 > Loops em Shell Scripts
Loops em scripts de shell
Machine Translated by Google
Sintaxe:
execute um para cada item da lista até que a lista não termine (e repita todas as instruções entre do e done)
feito
$ cat > mtable #!/bin/sh #
#Script para testar
o
loop # # if [ $# -eq 0 ] then echo "Erro - Número
faltando no argumento da linha
de
comando do formulário" echo "Sintaxe: $0 número" echo "Use para imprimir tabela de multiplicação para determinado
número" exit 1 fi n=$1 for i in 1 2 3 4 5 6 7 8 9 10 do
echo "$n * $i = `expr $i * $n`" pronto
Próximo
para {nome da variável} em {lista} faça
Anterior
Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3:
Construções de linguagem estruturada de shells (bash)
$ cat > testfor for i in 1 2 3 4
5 do echo "Bem-vindo $i vezes"
concluído
Execute o script acima da seguinte
maneira: $ chmod +x
testfor $ ./
testfor O loop for primeiro cria a variável i e atribui um número a i da lista de números de 1 a 5. O shell executa a instrução echo para cada atribuição de i.
(Isso geralmente é conhecido como iteração) Este processo continuará até que todos os itens da lista sejam concluídos, por isso repetirá 5 instruções de eco.
Para deixar sua ideia mais clara, tente o seguinte script:
Antes de tentar entender a sintaxe acima, tente o seguinte script:
Salve o script acima e execute-o como:
$ chmod 755 mtable $ ./
mtable 7 $ ./
mtable Para
a primeira execução, o script acima imprime a tabela de multiplicação de um determinado número onde i = 1,2 ... 10 é multiplicado por determinado n (aqui
LSST v1.05r3 > Capítulo 3 > Loop for
http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (1 de 5) [29/07/2002 18:52:26]
para Loop
Machine Translated by Google
para ((expr1; expr2; expr3)) faça
Sintaxe:
argumento de linha de comando 7) para produzir a tabuada como 7 * 1 = 7 7 * 2 =
14
.....
$ cat > for2
for (( i = 0 ; i <= 5; i++ )) do echo
"Bem-vindo $i vezes" concluído
Execute o script acima da seguinte
maneira: $ chmod +x
for2 $ ./
for2 Bem-vindo 0
vezes Bem-vindo 1
vezes Bem-vindo 2
vezes Bem-vindo 3
vezes Bem-vindo 4
vezes Bem-vindo 5 vezes
No exemplo acima, a primeira expressão (i = 0) é usada para definir a variável de valor i como zero.
Observe que para encerrar nosso script usamos o comando 'exit 1' que leva 1 como argumento (1 indica erro e, portanto, o script foi encerrado)
Todas as instruções entre do e done são executadas repetidamente ATÉ que o valor de expr2 seja TRUE.
APÓS cada iteração do loop, expr3 é avaliado. Isso geralmente é usado para incrementar um contador de loop.
Até você pode usar a seguinte sintaxe:
Feito
7 * 10 = 70 E
para a segunda execução de teste, ele imprimirá a
mensagem - Erro - Número faltando no formulário argumento da linha
de comando Sintaxe: ./mtable
number Use para imprimir a tabela de multiplicação para um determinado número
Isso aconteceu porque não fornecemos o número para o qual desejamos a tabuada. Portanto, o script está mostrando mensagem de erro,
sintaxe e uso do nosso script. É uma boa ideia se nosso programa receber algum argumento, informar ao usuário qual é a utilização do script
e como usá-lo.
Na sintaxe acima ANTES da primeira iteração, expr1 é avaliado. Isso geralmente é usado para inicializar variáveis para o loop.
...
...
A segunda expressão é a condição, ou seja, todas as instruções entre do e done executadas desde que a expressão 2 (ou seja,
continue enquanto o valor da variável i for menor ou equivalente a 5) for TRUE.
A última expressão i++ incrementa o valor de i em 1, ou seja, é equivalente à instrução i = i + 1.
..
repita todas as instruções entre do e done até que expr2 seja
TRUE
http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (2 de 5) [29/07/2002 18:52:26]
LSST v1.05r3 > Capítulo 3 > Loop for
Machine Translated by Google
Aninhamento de for Loop
http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (3 de 5) [29/07/2002 18:52:26]
LSST v1.05r3 > Capítulo 3 > Loop for
feito
echo "" #### imprime a nova linha ###
Execute o script acima da seguinte forma:
$ chmod +x nestedfor.sh $ ./
nestefor.sh 1 1 1
1 1 2 2 2 2
2 3 3 3 3 3
4 4 4 4 4 5
5 5 5 5
fi
echo -e -n "033[40m" #### volta a cor de fundo para preto echo "" #### imprime a nova linha ### pronto
feito
eco -n "$i"
tot=`expr $i + $j` tmp=`expr $tot % 2`
se [ $tmp -eq 0 ]; então
echo -e -n "033[47m " senão echo -e -n
"033[40m "
feito
$ vi tabuleiro de xadrez for (( i
= 1; i <= 9; i++ )) ### Outer for loop ### do
### Loop for externo ###
for (( j = 1 ; j <= 5; j++ )) ### Loop for interno ### do
for (( j = 1 ; j <= 9; j++ )) ### Loop for interno ### do
Aqui, para cada valor de i, o loop interno é alternado 5 vezes, com a variável j assumindo valores de 1 a 5. O loop
for interno termina quando o valor de j excede 5, e o loop externo termina quando o valor de i excede 5.
Como você pode ver, a instrução if pode ser aninhada, da mesma forma, a instrução de loop pode ser aninhada. Você pode aninhar o loop for. Para
entender o aninhamento do loop for, consulte o script de shell a seguir.
Execute o script acima da seguinte
maneira: $ chmod +x tabuleiro
de xadrez $ ./chessboard
$ vi nestedfor.sh for (( i = 1; i <= 5;
i++ )) fazer
O script a seguir é bastante interessante, pois imprime o tabuleiro de xadrez na tela.
Machine Translated by Google
para (( j = 1 ; j <= 9; j++ )) faça
para (( i = 1; i <= 9; i++ )) faça
No meu terminal acima, o script produz a saída da seguinte forma:
tot=`expr $i + $j`
tmp=`expr $tot % 2` se
[ $tmp -eq 0 ]; então
O fim do loop externo e os scripts de shell são encerrados com a impressão
do tabuleiro de xadrez.
Exercício
Tente entender os scripts shell (for loops) mostrados no capítulo do exercício.
feito
Se a posição do número par imprimir o bloco de cor branca (usando
a instrução echo -e -n "033[47m " ); caso contrário, para uma posição
ímpar, imprima a caixa de cor preta (usando a instrução echo -e -n
"033[40m " ). Estas declarações são responsáveis por imprimir todo o
tabuleiro de xadrez na tela com cores alternativas.
eco "" Imprima a linha em branco
Fim do loop interno
Certifique-se de que seu fundo seja preto, como sempre fazemos em
nossos terminais.
feito
Explicação
Comece o loop externo que é executado 9 vezes, e o loop externo
termina quando o valor de i excede 9 Inicia o loop
interno, para cada valor de i o loop interno é alternado 9 vezes, com a
variável j assumindo valores de 1 para 9. O loop for interno termina
quando o valor de j excede 9.
Veja as posições de números pares e ímpares usando essas instruções.
eco -e -n "033[40m"
echo -e -n "033[47m " senão
echo
-e -n "033[40m "
O script de shell acima pode ser explicado da seguinte forma:
Comando(s)/Declarações
fi
LSST v1.05r3 > Capítulo 3 > Loop for
http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (4 de 5) [29/07/2002 18:52:26]
Machine Translated by Google
Loops em scripts de shell
Próximo
Lar
Anterior
Acima enquanto loop
http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (5 de 5) [29/07/2002 18:52:26]
LSST v1.05r3 > Capítulo 3 > Loop for
Machine Translated by Google
....
..
Tutorial de script de shell do Linux (LSST) v1.05r3
Capítulo 3: Construções de linguagem estruturada de shells (bash)
feito
Salve-o e tente
como $ chmod 755
nt1 $./
nt1 7 O loop acima pode ser explicado da seguinte forma:
enquanto [condição] faça
exit 1 fi n=$1
i=1
enquanto
[ $i
-le 10 ] faça
echo "$n * $i = `expr $i * $n`" i=`expr $i + 1` concluído
comando1
comando2
comando3
echo "Erro - Número faltando no argumento da linha de comando do formulário" echo
"Sintaxe: $0 número"
Próximo
Sintaxe:
Use para imprimir a tabuada de multiplicação para um determinado número" echo "
O loop é executado enquanto a condição dada for verdadeira. Por exemplo. O programa for loop acima (mostrado na
última seção do loop for) pode ser escrito usando o loop while como:
$cat > nt1 #!/bin/sh
# #Script para
testar a instrução while # # if [ $# -eq 0 ] then
Anterior
http://www.cyberciti.biz/pdf/lsst/ch03sec07.html (1 de 2) [29/07/2002 18:52:28]
LSST v1.05r3 > Capítulo 3 > A declaração do caso
enquanto loop
Machine Translated by Google
enquanto [$i -le 10]
o programa só produzirá
feito
Esta é a nossa condição de loop, aqui se o valor de i for menor
variável (Aqui está definido como 7 )
n=$1
Cuidado: Se você ignorar (remover) esta instrução, nosso loop
se tornará um loop infinito porque o valor
condição do loop não é verdadeira. Por isso
Defina o valor do argumento da linha de comando como
7 * 2 = 14
Aumente i em 1 e armazene o resultado em i. (ou seja, eu = eu + 1)
Imprimir tabela de multiplicação como
...
7 * 10 = 70, aqui cada valor de tempo da variável n é
Próximo
Lar
fazer e pronto
echo "$n * $i = `expr $i * $n`"
i=`expr $i + 1`
7 * 1 = 7
maior que 10 então, o shell executa todas as instruções entre
fazer
Anterior para loop
Defina a variável i como 1
da variável i sempre permanece menor que 10 e
eu=1
o loop é encerrado.
O loop para aqui se i não for menor que 10, ou seja
multiplique seja eu.
E (vezes infinitas)
A declaração do caso
7 * 1 = 7
Iniciar ciclo
....
...
Acima
http://www.cyberciti.biz/pdf/lsst/ch03sec07.html (2 de 2) [29/07/2002 18:52:28]
LSST v1.05r3 > Capítulo 3 > A declaração do caso
Machine Translated by Google
..
aluguel="*** Veículo desconhecido ***" elif [ -n $1 ] then
...
Tutorial de script de shell do Linux (LSST) v1.05r3
Capítulo 3: Construções de linguagem estruturada de shells (bash)
comando;;
comando padrão2)
comando;;
comando
*)
...
# caso contrário, faça o primeiro argumento como aluguel
Sintaxe:
...
$ cat > car # # se
nenhum nome de veículo for fornecido # ou seja, -z
$1 é definido e é NULL # # se nenhum argumento de linha de comando
..
case $ nome da variável no comando
padrão1)
se [-z $1] então
comando;;
Próximo
esac
O $variable-name é comparado com os padrões até que uma correspondência seja encontrada. O shell então executa todas as
instruções até os dois pontos e vírgulas próximos um do outro. O padrão é *) e será executado se nenhuma correspondência
for encontrada. Por exemplo, escreva o script da seguinte forma:
A instrução case é uma boa alternativa à instrução multinível if-then-else-fi. Ele permite que você combine vários
valores com uma variável. É mais fácil ler e escrever.
comando padrãoN)
...
..
comando;;
Anterior
..
http://www.cyberciti.biz/pdf/lsst/ch03sec08.html (1 de 2) [29/07/2002 18:52:32]
LSST v1.05r3 > Capítulo 3 > A declaração do caso
A declaração do caso
Machine Translated by Google
Para o segundo teste, imprima "Para carro Rs.20 por km/ m".
Salve-o pressionando CTRL+D e execute-o da seguinte forma:
$ chmod +x car $
car van $
car car $
car Maruti-800
Para o primeiro teste, combine com a van e mostrará a saída "Para van Rs.10 por km/ m."
Anterior while loop
esac
O primeiro script verificará se $1 (primeiro argumento da linha de comando) é fornecido ou não, se NÃO for fornecido, defina o valor da variável de
aluguel como "*** Veículo desconhecido ***", se o argumento da linha de comando for fornecido/fornece o valor definido de variável de aluguel para
determinado valor (linha de comando arg). O aluguel $ é comparado com os padrões até que uma correspondência seja encontrada.
case $aluguel em "carro")
echo "Por $aluguel Rs.20 por km/m";; "van") echo "Por $ aluguel Rs.10 por
km/m";; "jipe") echo "Por $ aluguel Rs.5 por km/m";; "bicicleta") echo "Por
$aluguel 20 paisa por km/m";; *) echo "Desculpe, não consigo alugar $ para
você";;
aluguel = $ 1 fi
Lar
Observe que esac é sempre necessário para indicar a declaração de fim de caso.
E para a última execução, não há correspondência para Maruti-800, portanto, o padrão, ou seja, *) é executado e imprime: "Desculpe,
não consigo obter um Maruti-800 para você".
Acima Próximo Como depurar o shell script?
Veja mais um exemplo de instrução case no capítulo 4 da seção comando shift.
http://www.cyberciti.biz/pdf/lsst/ch03sec08.html (2 de 2) [29/07/2002 18:52:32]
LSST v1.05r3 > Capítulo 3 > A declaração do caso
Machine Translated by Google
A opção pode
ser -v Imprimir linhas de entrada do shell à medida
que são lidas. -x Depois de expandir cada comando simples, o bash exibe o valor expandido da variável do sistema PS4,
seguido pelo comando e seus argumentos expandidos.
OU
opção bash {shell-script-name}
Exemplo:
$ cat > dsh1.sh # #
Script para mostrar a depuração do shell
#
tot=`expr $1 + $2` echo
$tot
Anterior
Ao programar o shell, às vezes você precisa encontrar os erros (bugs) no script do shell e corrigi-los (remover erros - depurar).
Para este propósito, você pode usar as opções -v e -x com o comando sh ou bash para depurar o script de shell. A sintaxe geral
é a seguinte: Sintaxe: sh option {shell-script-name }
Próximo
Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo
3: Construções de linguagem estruturada de shells (bash)
Pressione ctrl + d para salvar e execute-o
como $ chmod 755 dsh1.sh
$ ./dsh1.sh 4 5 9
$
sh -x dsh1.sh 4 5 # #
Script para mostrar a depuração do shell
#
tot=`expr $1 + $2` expr
$1 + $2 ++ expr
4 + 5 + tot=9 echo
$tot +
echo 9 9
Veja a saída acima, -x mostra os valores exatos das variáveis (ou as instruções são mostradas na tela com valores).
LSST v1.05r3 > Capítulo 3 > Como depurar o shell script?
http://www.cyberciti.biz/pdf/lsst/ch03sec09.html (1 de 2) [29/07/2002 18:52:33]
Como depurar o shell script?
Machine Translated by Google
Próximo
A declaração do caso Acima
Anterior Lar
Use a opção -v para depurar scripts de shell complexos.
$ sh -v dsh1.sh 4 5
Script avançado de shell
http://www.cyberciti.biz/pdf/lsst/ch03sec09.html (2 de 2) [29/07/2002 18:52:33]
LSST v1.05r3 > Capítulo 3 > Como depurar o shell script?
Machine Translated by Google
• Interface do usuário
• Funções
Tutorial de script de shell do Linux (LSST) v1.05r3
• Execução condicional
Acima
Próximo
/dev/null - para enviar saída indesejada de
Depois de aprender a base do script de shell, é hora de aprender mais recursos avançados de script/comando de shell
Como depurar o shell script?
Lar
como:
• Manipulação de vários argumentos de linha de comando, etc.
Próximo
Anterior
• Descritores de arquivos
Capítulo 4: Comandos avançados de script de shell
programa
Anterior
• armadilhas
http://www.cyberciti.biz/pdf/lsst/ch04.html [29/07/2002 18:52:35]
LSST v1.05r3 > Capítulo 4 > Introdução
Introdução
Machine Translated by Google
comando> /dev/null
Variável local e global do Shell (exportação
Sintaxe:
Tutorial de script de shell do Linux (LSST) v1.05r3
Exemplo:
Execute os dois comandos a seguir
$ ls > /dev/nulo
$ rm > /dev/nulo
comando)
partição e sistema de arquivos.
Acima
Ponto Futuro:
Este é um arquivo especial do Linux que é usado para enviar qualquer saída indesejada do programa/comando.
Próximo
outros arquivos do dispositivo. Os arquivos neste diretório representam principalmente dispositivos periféricos, como disquetes
Próximo
Comandos avançados de script de shell
Lar
disco, placa de som, impressoras de linha etc. Veja o tutorial do sistema de arquivos para obter mais informações sobre o disco Linux,
$ ls > /dev/nulo
Capítulo 4: Comandos avançados de script de shell
1) Por que a saída do último comando não é redirecionada para o dispositivo /dev/null?
Anterior
A saída do comando acima não é mostrada na tela e é enviada para este arquivo especial. O diretório /dev contém
Anterior
LSST v1.05r3 > Capítulo 4 > /dev/null - Use para enviar saída indesejada do programa
http://www.cyberciti.biz/pdf/lsst/ch04sec1.html [29/07/2002 18:52:36]
do programa
/dev/null - Use para enviar saída indesejada
Machine Translated by Google
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf
Curso de shell-tutorial avançadoIII .pdf

Mais conteúdo relacionado

Semelhante a Curso de shell-tutorial avançadoIII .pdf

Atividade programação script 2
Atividade programação script 2Atividade programação script 2
Atividade programação script 2
Rtec Informatica
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
PythOnRio
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
Luiz Aldabalde
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
Eduardo de Lucena Falcão
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
Marcio Pereira
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NET
José Corrêa Viana
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-net
Sandra Rocha
 
Engenharia Reversa no Linux
Engenharia Reversa no LinuxEngenharia Reversa no Linux
Engenharia Reversa no Linux
Fernando Mercês
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
Uira Ribeiro
 
Soa cap2 administracao de sistemas2 (slides)
Soa cap2 administracao de sistemas2 (slides)Soa cap2 administracao de sistemas2 (slides)
Soa cap2 administracao de sistemas2 (slides)
portal_Do_estudante
 
Apostila de-vb-net
Apostila de-vb-netApostila de-vb-net
Apostila de-vb-net
GenioTec Informática - Angola
 
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Tchelinux
 
Prog shell
Prog shellProg shell
Prog shell
Tiago
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
guest7a481e8
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
eliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
eliezer
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
Rogério Moraes de Carvalho
 
C sharp lesson1
C sharp lesson1C sharp lesson1
C sharp lesson1
Simone Ferreira
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
Cláudia Costa
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
Francisco Gonçalves
 

Semelhante a Curso de shell-tutorial avançadoIII .pdf (20)

Atividade programação script 2
Atividade programação script 2Atividade programação script 2
Atividade programação script 2
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
 
Apostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NETApostila - Desenvolvimento Web com ASP.NET
Apostila - Desenvolvimento Web com ASP.NET
 
apostila-desenvolvimento-asp-net
 apostila-desenvolvimento-asp-net apostila-desenvolvimento-asp-net
apostila-desenvolvimento-asp-net
 
Engenharia Reversa no Linux
Engenharia Reversa no LinuxEngenharia Reversa no Linux
Engenharia Reversa no Linux
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Soa cap2 administracao de sistemas2 (slides)
Soa cap2 administracao de sistemas2 (slides)Soa cap2 administracao de sistemas2 (slides)
Soa cap2 administracao de sistemas2 (slides)
 
Apostila de-vb-net
Apostila de-vb-netApostila de-vb-net
Apostila de-vb-net
 
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
Introdução ao Desenvolvimento do Kernel Linux Versões 2.6.X - Douglas Schilli...
 
Prog shell
Prog shellProg shell
Prog shell
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
 
C sharp lesson1
C sharp lesson1C sharp lesson1
C sharp lesson1
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 
O docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-tiO docker vai mudar tudo na sua infra estrutura-ti
O docker vai mudar tudo na sua infra estrutura-ti
 

Curso de shell-tutorial avançadoIII .pdf

  • 1. Escrito por Vivek G. Gite. Cyberciti Computers & nixCraft, Pune, ÍNDIA. Machine Translated by Google
  • 2. Como instalar o Linux Onde posso usar o Linux? Como obter o Linux? O que é kernel? Variáveis no shell Regras para nomear nomes de variáveis (UDV e variáveis de sistema) Como definir variáveis definidas pelo usuário (UDV) O que é Linux? Capítulo 2: Introdução à programação Shell Como escrever script de shell Quem desenvolveu o Linux? Por que escrever Shell Script? Capítulo 1: Introdução rápida ao Linux Mais sobre a Shell... O que é Linux Shell? Copyright © 1999-2002 por Vivek G. Gite <vivek@nixcraft.com> Como imprimir ou acessar o valor do comando echo UDV (variáveis definidas pelo usuário) Como usar o Shell O que é Shell Script? (Formalmente conhecido como www.vivek-tech.com) Tutorial de script de shell do Linux v1.05r3 Um manual para iniciantes http://www.cyberciti.biz/pdf/lsst/index.html (1 de 5) [29/07/2002 18:50:01] Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes Índice Machine Translated by Google
  • 3. http://www.cyberciti.biz/pdf/lsst/index.html (2 de 5) [29/07/2002 18:50:01] Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes Capítulo 4: Comandos avançados de script de shell Tomada de decisão em shell script (ou seja, comando if) comando de teste ou [expr] if...else...fi Loops if-then-else multiníveis em scripts de shell for loop Loop for aninhado loop while A instrução case Como depurar o script de shell? /dev/null - para enviar saída indesejada da variável local e global do programa Shell (comando de exportação) Mais comandos em uma linha de comando Processamento de linha de comando Por que argumentos de linha de comando são necessários Redirecionamento de saída/entrada padrão, ou seja, redirecionamento de entrada - saída Filtro de tubos O que é processos Por que processo é necessário Comando(s) Linux Relacionado(s) ao processo Ifs aninhados Capítulo 3: Construções de linguagem estruturada de shells (bash) Aritmética do Shell Mais sobre cotações Status de saída Os curingas da instrução de leitura (abreviação do nome do arquivo ou metacaracteres) Execução condicional, ou seja, && e || Redirecionamento de E/S e descritores de arquivo Funções Interface do usuário e utilitário de diálogo - Parte I Interface do usuário e utilitário de diálogo - Parte II Caixa de mensagens (msgbox) usando o utilitário de diálogo Caixa de confirmação (caixa yesno) usando o utilitário de diálogo Entrada (inputbox) usando o utilitário de diálogo Interface do usuário usando o utilitário de diálogo - Juntando tudo comando trap O comando shift Machine Translated by Google
  • 4. Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes http://www.cyberciti.biz/pdf/lsst/index.html (3 de 5) [29/07/2002 18:50:01] Removendo linhas duplicadas do arquivo de banco de dados de texto usando o utilitário uniq Manipulação de dados usando o utilitário awk utilitário sed - Editando arquivo sem usar o editor comando getopts Encontrando padrão correspondente usando o utilitário grep Localizar e substituir (substituindo expressão regular) Substituindo palavra pela confirmação do usuário Encontrando palavras O utilitário de junção Copiando linhas Mais exemplos de sed Procurando as palavras Traduzindo intervalo de caracteres usando o utilitário tr Capítulo 8: Exemplos de Shell Scripts Imprimindo texto na tela Selecionando parte de um arquivo usando o utilitário cut Convertendo caracteres minúsculos em maiúsculos Capítulo 7: awk revisitado Introdução ao awk Variáveis predefinidas do awk Fazendo aritmética com awk Variáveis definidas pelo usuário no awk Uso da instrução printf Uso da especificação de formato Código if condição no awk Loops no awk Exemplos da vida real no awk awk diversos sed - Introdução rápida Redirecionamento a saída do comando sed Como escrever scripts sed? Juntando linhas usando o utilitário paste Excluindo linhas Capítulo 6: Aprendendo expressões com ex Capítulo 5: Utilitários essenciais para usuários avançados Usando intervalo de caracteres em expressões regulares Usando & como caractere de substituição especial Preparando-se para um tour rápido de utilitários essenciais Começando com ex Machine Translated by Google
  • 5. http://www.cyberciti.biz/pdf/lsst/index.html (4 de 5) [29/07/2002 18:50:01] Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes Implementação do processo em segundo plano: Relógio digital usando shell script Interface de usuário e funções em shell script: Shell script para implementar sistema baseado em menu. Loops usando loop while e for: Imprime nos. como 5,4,3,2,1 usando loop while Imprimindo os padrões usando loop for. Comando de manuseio/eco de tela com código de sequência de escape: Shell script para imprimir a mensagem "Hello World", em negrito, efeito Blink e em cores diferentes como vermelho, marrom etc. Capítulo 9: Outros Recursos Manipulação de linha de comando (args): Adicionando 2 números. fornecido como argumentos de linha de comando Calculando a média de números fornecidos em argumentos de linha de comando Descobrindo o maior número de três números fornecidos como argumentos de linha de comando Script de shell para implementar a instrução getopts. Aritmética em shell script: Executando cálculo de número real em shell script Convertendo número decimal em número hexadecimal Calculando fatorial de determinado número Manipulação de arquivos: Shell script para determinar se determinado arquivo existe ou não. Calculadora matemática básica (declaração de caso) Desenvolvimento de lógica: Shell script para imprimir determinados números, soma de todos os dígitos Shell script para imprimir contém o arquivo de um determinado número de linha até o próximo número de linhas Shell script para dizer Bom dia/Tarde/Noite ao fazer login no sistema Shell script para encontrar se o ano inserido é bissexto ou não Classifique os cinco números fornecidos em ordem crescente (uso de matriz) etc. Apêndice - A : Tutorial do servidor de arquivos Linux (LFST) versão b0.1 Rev. 2 Apêndice - B : Referência de comandos do Linux (LCR) Sobre o autor Sobre este documento Administração do sistema: Obtendo mais informações sobre seu ambiente de trabalho por meio de script de shell Script de shell para coletar informações úteis do sistema, como CPU, discos, RAM e seu ambiente Script de shell para adicionar DNS Entery ao banco de dados BIND com servidores de nomes, servidores de correio (MX) e host padrão Integrando script awk com shell script: Script para converter nomes de arquivos de MAIÚSCULAS para nomes de arquivos em minúsculas ou vice-versa. Machine Translated by Google
  • 6. (Cyeberciti Computers & nixCraft tem anos de experiência em Linux/Unix/FreeBSD. Se você precisar de algum assistência, educação, suporte para Linux/Unix, escreva para sales@cyberciti.biz ) http://www.cyberciti.biz/pdf/lsst/index.html (5 de 5) [29/07/2002 18:50:01] Tutorial de Linux Shell Scripting v1.05r3 - Um manual para iniciantes Lar Próximo Acima Introdução rápida ao Linux Machine Translated by Google
  • 7. O que há de diferente neste tutorial Organização do Capítulo Público deste tutorial Introdução http://www.cyberciti.biz/pdf/lsst/ch01.html (1 de 2) [29/07/2002 18:50:59] LSST v1.05r3 > Capítulo 1 > Introdução rápida ao Linux Presumo que você tenha pelo menos conhecimento prático de Linux, ou seja, comandos básicos como criar, copiar, remover arquivos/diretórios etc. ou como usar editores como vi ou mcedit e fazer login em seu sistema. Mas não espera nenhuma experiência em linguagem de programação. Se você tiver acesso ao Linux, este tutorial fornecerá uma introdução fácil de seguir ao script de shell. Muitos outros tutoriais e livros sobre scripts de shell do Linux são muito básicos ou ignoram etapas intermediárias importantes. Mas este tutorial manteve o equilíbrio entre os dois. Ele cobre muitos exemplos modernos de scripts de shell da vida real que quase são perdidos por muitos outros tutoriais/documentos/livros. Usei uma abordagem prática neste tutorial. A ideia é muito clara "faça você mesmo ou aprenda fazendo", ou seja, tentar as coisas sozinho é a melhor maneira de aprender, então os exemplos são apresentados como scripts de shell completos e funcionais, que podem ser digitados e executados Os capítulos 1 a 4 mostram a maioria dos conceitos úteis e importantes de shell scripting. Capítulo 5, introdução às ferramentas e utilitários que podem ser usados durante a programação inteligente do shell do Linux. Os capítulos 6 e 7 são sobre expressões e expressões usadas principalmente por ferramentas como sed e awk. O Capítulo 8 está repleto de exemplos de scripts de shell divididos em diferentes categorias. O Capítulo 9 fornece mais informações sobre recursos que podem ser usados ao aprender o script de shell, como informações sobre o sistema de arquivos Linux, referência de comandos comuns do Linux e outros recursos. O Capítulo 1 apresenta conceitos básicos como o que é Linux, onde o Linux pode ser usado e continua explicando o shell, shell script e kernel, etc. Próximo Este tutorial foi desenvolvido para iniciantes que desejam aprender o básico de script/programação de shell, além de introdução a ferramentas poderosas como awk, sed, etc. ao ler este tutorial, você pode achar o manual bastante útil (digite man bash no prompt $ para ver as páginas do manual). O manual contém todas as informações necessárias, mas não terá muitos exemplos, o que deixa a ideia mais clara. Por esse motivo, este tutorial contém exemplos em vez de todos os recursos do shell. Anterior Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 1: Introdução: Introdução rápida ao Linux O Capítulo 2 mostra como escrever o shell script e executá-lo. Ele explica muitos conceitos básicos necessários para escrever scripts de shell. Machine Translated by Google
  • 8. http://www.cyberciti.biz/pdf/lsst/ch01.html (2 de 2) [29/07/2002 18:50:59] LSST v1.05r3 > Capítulo 1 > Introdução rápida ao Linux Espero que você tenha tanto prazer lendo este tutorial quanto eu tive ao escrevê-lo. Depois de ler este tutorial, se você for capaz de escrever seus próprios scripts de shell poderosos, então acho que o propósito de escrever este tutorial foi atendido e, finalmente, se você tiver tempo depois de ler este tutorial, envie-me uma mensagem de e-mail sobre seu comentário/sugestão /questions e bugs (erros) fora do curso que você encontrar neste tutorial. Os capítulos 6 e 7 fornecem mais informações sobre padrões, filtros, expressões e, claro, sed e awk são abordados em profundidade. Observe que isso indica conceitos avançados de script de shell. Você pode pular isso se for realmente novo em Linux ou programação, embora isso não seja RECOMENDADO por mim. Anterior O Capítulo 5 apresenta programas utilitários poderosos que podem ser usados para diversos fins durante a programação do shell. O Capítulo 8 contém muitos exemplos de scripts de shell divididos em várias categorias, como desenvolvimento lógico, administração de sistema, etc. O Capítulo 4 apresenta muitos conceitos avançados de script de shell, como função, interface de usuário, descritores de arquivo, manipulação de sinal, vários argumentos de linha de comando, etc. O Capítulo 3 é sobre como tomar decisões em scripts de shell, bem como em loops em shell. Explica o que são expressões, como o Shell entende as condições/decisões. Ele também mostra o conceito de aninhamento para instruções de loop if e for e depuração de script de shell. Lar Acima Próximo O que é Linux? Machine Translated by Google
  • 9. O que é Linux? http://www.cyberciti.biz/pdf/lsst/ch01sec01.html [29/07/2002 18:51:07] LSST v1.05r3 > Capítulo 1 > O que é Linux? • Semelhante ao Unix • Gratuito • Código aberto Acima Anterior Próximo Capítulo 1: Introdução: Introdução rápida ao Linux Tutorial de script de shell do Linux (LSST) v1.05r3 Lar Anterior Quem desenvolveu o Linux? Próximo • Sistema operacional de rede Machine Translated by Google
  • 10. Quem desenvolveu o Linux? mais informações sobre Linus Torvalds, visite sua página inicial. LSST v1.05r3 > Capítulo 1 > Quem desenvolveu o Linux? http://www.cyberciti.biz/pdf/lsst/ch01sec02.html [29/07/2002 18:51:08] sistema operacional de propósito específico chamado Minix (versão pequena do Unix e usada em ambiente acadêmico). Mas Em 1991, Linus Torvalds estudou Unix na Universidade, onde utilizou experimentos educacionais especiais O Minix tinha suas próprias limitações. Linus sentiu que poderia fazer melhor que o Minix. Então ele desenvolveu seu próprio Lar Anterior Próximo Capítulo 1: Introdução: Introdução rápida ao Linux Tutorial de script de shell do Linux (LSST) v1.05r3 Anterior O que é Linux? Como obter o Linux? Próximo versão do Minix, que agora é conhecido como Linux. Linux é código aberto desde o início do dia. Para Acima Machine Translated by Google
  • 11. Site/Logotipo Distribuições Linux. SuSE Linux: http://www.suse.com/ Mandrake Linux: http://www.mandrakesoft.com/ Próximo Linux disponível para download pela rede, isso é útil se sua conexão com a internet for rápida. Outra forma é encomendar os CD-ROMs o que economiza tempo, e a instalação a partir do CD-ROM é rápida/automática. Várias distribuições Linux disponíveis. A seguir estão distribuições importantes do Linux. Anterior Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 1: Introdução: Introdução rápida ao Linux Debian GNU/Linux: http:// www.debian.org/ Slackware Linux: http://www.slackware.com/ Nota: Se você estiver na Índia, poderá obter a distribuição Linux da revista Leading Computer, como PC Quest (Até o PCQuest tem seu próprio sabor Linux) ou se você estiver em Pune, Índia, visite nosso site para obter o Red Hat Linux ou qualquer outra distribuição oficial do Linux. Observe que você também pode obter sua distribuição Linux com livros sobre Linux que você compra na livraria local. Caldera Linux: http://www.calderasystems.com/ Red Hat Linux: http:// www.redhat.com/ LSST v1.05 > Capítulo 1 > Como obter o Linux? http://www.cyberciti.biz/pdf/lsst/ch01sec03.html (1 de 2) [29/07/2002 18:51:11] Como obter o Linux? Machine Translated by Google
  • 12. Acima Como instalar o Linux Lar Anterior Quem desenvolveu o Linux? Próximo LSST v1.05 > Capítulo 1 > Como obter o Linux? http://www.cyberciti.biz/pdf/lsst/ch01sec03.html (2 de 2) [29/07/2002 18:51:11] Machine Translated by Google
  • 13. Lar Anterior Como obter o Linux? Acima Próximo Capítulo 1: Introdução: Introdução rápida ao Linux versão 6.2 e 7.2. Por favor visite o LESSBS Página inicial do projeto para Guia de instalação visual rápida para Red Hat Linux Tutorial de script de shell do Linux (LSST) v1.05r3 Onde posso usar o Linux? Anterior Próximo LSST v1.05 > Capítulo 1 > Como instalar o Linux? http://www.cyberciti.biz/pdf/lsst/ch01sec04.html [29/07/2002 18:51:22] Como instalar o Linux? Machine Translated by Google
  • 14. Onde posso usar o Linux? Servidor Linux com diferentes sistemas operacionais clientes • Robusto • Estável • Seguro • Alto desempenho Anterior Próximo Você pode usar o Linux como sistema operacional de servidor ou como sistema operacional independente em seu PC. (Mas é mais adequado para servidor.) Como um sistema operacional de servidor, ele fornece diferentes serviços/recursos de rede para o cliente. O sistema operacional do servidor deve ser: Tutorial de script do Linux Shell (LSST) v1.05r3 Capítulo 1: Introdução: Noções básicas do Linux Shell O Linux oferece todas as características acima, além de seu sistema operacional de código aberto e gratuito. Portanto, o Linux pode ser usado como: (1) Em estação de trabalho/ PC independente para processamento de texto, gráficos, desenvolvimento de software, internet, e-mail, bate- papo, pequeno sistema de gerenciamento de banco de dados pessoal, etc. (2) Em ambiente de rede como: (A) Arquivo e impressão ou servidor de aplicativos Compartilhar os dados, conectar o dispositivo caro como impressora e compartilhá-lo, e-mail dentro da LAN/intranet etc. são algumas das aplicações. (B) O servidor Linux pode ser conectado à Internet, para que os PCs na intranet possam compartilhar a internet/e-mail, etc. Você pode colocar seu servidor web que administra seu site ou transmitir as informações pela internet. LSST v1.05 > Capítulo 1 > Onde posso usar Linux? http://www.cyberciti.biz/pdf/lsst/ch01sec05.html (1 de 2) [29/07/2002 18:51:26] Machine Translated by Google
  • 15. Veja o MENOSBS projeto para obter mais informações sobre Linux Essential Services (conforme mencionado acima) e Dispositivo de cache etc. como implementá-los de maneira fácil para você ou sua organização. • Servidor de grupo de trabalho Próximo No Data Center para diversas atividades de servidor como FTP, Telnet, SSH, Web, Mail, Proxy, Proxy O que é kernel? Lar • Servidor Web • Estação de trabalho de desenvolvimento de software Portanto, você pode usar o Linux para: Anterior Acima Como instalar o Linux • Trabalho Pessoal O servidor Linux pode atuar como servidor proxy/correio/WWW/roteador, etc. http://www.cyberciti.biz/pdf/lsst/ch01sec05.html (2 de 2) [29/07/2002 18:51:26] LSST v1.05 > Capítulo 1 > Onde posso usar Linux? • Machine Translated by Google
  • 16. O Kernel decide quem utilizará esse recurso, por quanto tempo e quando. Ele executa seus programas (ou configura para dados, dados de impressão na impressora, memória, gerenciamento de arquivos etc. • Gerenciamento de arquivos Tutorial de script de shell do Linux (LSST) v1.05r3 executar arquivos binários). • Gerenciamento de memória Anterior Onde posso usar o Linux? Kernel é o coração do Linux OS. • Gestão de processos Ele gerencia recursos do Linux Os. Recursos significa recursos disponíveis no Linux. Por exemplo, facilidade para armazenar • Gerenciamento de dispositivos É a parte residente na memória do Linux. Ele executa a seguinte tarefa: - Próximo Anterior O que é Linux Shell? Próximo Capítulo 1: Introdução: Noções básicas do Linux Shell O kernel atua como um intermediário entre o hardware do computador e vários • Gerenciamento de E/S Lar programas/aplicativo/shell. Acima http://www.cyberciti.biz/pdf/lsst/ch01sec06.html [29/07/2002 18:51:28] LSST v1.05 > Capítulo 1 > LSST v1.05 > Capítulo 1 > O que é kernel? Machine Translated by Google
  • 17. Vários shell disponíveis com Linux, incluindo: Software grátis a programação C Anterior Veja a página de manual. $ gato /etc/conchas Laboratórios AT&T Bell -- Capítulo 1: Introdução: Noções básicas do Linux Shell A sintaxe do shell C e interpretador que executa comandos lidos do dispositivo de entrada padrão (teclado) ou de um arquivo. BASH (Bourne-de novo $ prompt. Este prompt depende do seu shell e ambiente que você definiu ou do seu sistema Tutorial de script de shell do Linux (LSST) v1.05r3 Shell é um programa de usuário ou um ambiente fornecido para interação do usuário. Shell é uma linguagem de comando Observação tão poderosos quanto nossos Linux Shells são! nós, para ler e escrever. Portanto, no Os existe um programa especial chamado Shell. A Shell aceita suas instruções ou Ramey Shell mais comum em KSH (Korn Shell) versão compatível de CSH (C SHell) TCSH é um aprimoramento diferentes funções integradas. O computador entende a linguagem de 0 e 1 chamada linguagem binária. Desenvolvido por Universidade da Califórnia Fundação Próximo Nome do Concha linguagem. Digite $ man tcsh Dica: Para encontrar todos os shells disponíveis em seu sistema, digite o seguinte comando: Shell não faz parte do kernel do sistema, mas usa o kernel do sistema para executar programas, criar arquivos, etc. Concha ) o uso é muito semelhante ao -- Observe que cada shell faz o mesmo trabalho, mas cada um entende uma sintaxe de comando diferente e fornece Administrador, portanto você pode receber um prompt diferente). concha. David Korn shell (CSH). querer. Se estivermos dando comandos do teclado, isso é chamado de interface de linha de comando (geralmente na frente do Onde Linux. É gratuito TCSH comandos em inglês (principalmente) e se for um comando válido, ele é passado para o kernel. o Berkeley UNIX C Qualquer um dos shells acima lê o comando do usuário (via teclado ou mouse) e informa ao Linux OS quais usuários mas completamente No MS-DOS, o nome do Shell é COMMAND.COM, que também é usado para a mesma finalidade, mas não é tão Nos primórdios da computação, as instruções eram fornecidas em linguagem binária, o que era difícil para todos Brian Fox e Chet (Para BSD) Bill Alegria http://www.cyberciti.biz/pdf/lsst/ch01sec07.html (1 de 2) [29/07/2002 18:51:30] LSST v1.05 > Capítulo 1 > O que é Linux Shell? O que é Linux Shell? Machine Translated by Google
  • 18. Anterior O que é Kernel? Acima $ eco $SHELL Dica: Para encontrar seu shell atual, digite o seguinte comando Como usar o Shell Lar Próximo http://www.cyberciti.biz/pdf/lsst/ch01sec07.html (2 de 2) [29/07/2002 18:51:30] LSST v1.05 > Capítulo 1 > O que é Linux Shell? Machine Translated by Google
  • 19. programando o shell. Veja o comando comum do Linux para sintaxe e exemplo, isso pode ser usado como referência rápida enquanto Anterior O que é Linux Shell? O que é ShellScript? Para usar o shell (você começa a usar o shell assim que faz login no sistema), basta digitar comandos. Capítulo 1: Introdução: Noções básicas do Linux Shell Tutorial de script de shell do Linux (LSST) v1.05r3 Acima Próximo Próximo Lar Anterior http://www.cyberciti.biz/pdf/lsst/ch01sec08.html [29/07/2002 18:51:31] LSST v1.05 > Capítulo 1 > Como usar o Shell Como usar o Shell Machine Translated by Google
  • 20. comandos. Isso é conhecido como shell script. sequência de comando para arquivo de texto e diga ao shell para executar este arquivo de texto em vez de inserir o Próximo Tutorial de script de shell do Linux (LSST) v1.05r3 Script de shell definido como: Por que escrever Shell Script? Normalmente os shells são interativos. Significa que o shell aceita o comando seu (via teclado) e executa Lar eles. Mas se você usar o comando um por um (sequência de 'n' número de comandos), você poderá armazenar isso Acima Anterior Anterior Próximo Capítulo 1: Introdução: Noções básicas do Linux Shell "Shell Script é uma série de comandos escritos em arquivo de texto simples. Shell script é exatamente como o arquivo em lote é MS-DOS Como usar o Shell mas tem mais poder que o arquivo em lote do MS-DOS." http://www.cyberciti.biz/pdf/lsst/ch01sec09.html [29/07/2002 18:51:33] LSST v1.05 > Capítulo 1 > O que é Shell Script? O que é ShellScript? Machine Translated by Google
  • 21. Próximo Anterior • Economize muito tempo. • Para automatizar alguma tarefa do dia a dia. Capítulo 1: Introdução: Noções básicas do Linux Shell • Útil para criar nossos próprios comandos. • O shell script pode receber entradas do usuário, arquivá-las e exibi-las na tela. Tutorial de script de shell do Linux (LSST) v1.05r3 • A parte de Administração do Sistema também pode ser automatizada. Acima Próximo Lar Mais sobre a Shell... Anterior O que é Shell Script? http://www.cyberciti.biz/pdf/lsst/ch01sec10.html [29/07/2002 18:51:34] LSST v1.05 > Capítulo 1 > Por que escrever Shell Script? Por que escrever Shell Script? Machine Translated by Google
  • 22. Tente entender o sistema operacional Linux Distribuição Red Hat Linux). Todos os scripts também são testados no Red Hat Linux versão 7.2. Tente entender o básico do shell do Linux Tutorial de script de shell do Linux (LSST) v1.05r3 Anterior Por que escrever Shell Script? Lar Navegue na Web para ler o tutorial. (IE ou Netscape) Para a versão PDF você precisa de um leitor de PDF. Neste tutorial estamos usando o shell bash. Linux - shell bash. (Disponível em quase todas as distribuições Linux. Por padrão, bash é o shell padrão para Introdução à programação Shell Próximo SO Linux (usei a distribuição Red Hat Linux versão 6.x+) Capítulo 1: Introdução: Noções básicas do Linux Shell Tente aprender a programação do shell do Linux Acima Anterior Próximo LSST v1.05 > Capítulo 1 > Noções básicas do Linux Shell http://www.cyberciti.biz/pdf/lsst/ch01sec11.html [29/07/2002 18:51:36] Objetivo deste tutorial (LSST v.1.5) O que eu preciso para aprender este tutorial (LSST Roteiro ? Qual Shell estamos usando para escrever Shell v.1.5) Machine Translated by Google
  • 23. Começaremos a escrever um pequeno script de shell, que imprimirá "Conhecimento é poder" na tela. Nesta parte do tutorial você será apresentado à programação shell, como escrever scripts, executá-los, etc. Antes de começar com isso você deve saber • Como usar um editor de texto como o vi, consulte o comando vi comum para obter mais informações. Capítulo 2: Introdução à programação Shell Próximo Anterior Tutorial de script de shell do Linux (LSST) v1.05r3 • Navegação básica de comandos Acima Próximo Lar Como escrever script de shell Anterior Mais sobre Shell... http://www.cyberciti.biz/pdf/lsst/ch02.html [29/07/2002 18:51:37] LSST v1.05r3 > Capítulo 2 > Introdução à programação Shell Introdução à programação Shell Machine Translated by Google
  • 24. (2) Depois de escrever o shell script, defina a permissão de execução para o seu script conforme a seguinte sintaxe: chmod permission your-script-name (1) Use qualquer editor como vi ou mcedit para escrever scripts de shell. Exemplos: $ chmod +x nome do seu script $ chmod 755 nome do seu script se você é novo no vi. $ vi primeiro # , Próximo Exemplo: $. foo Agora você está pronto para escrever o primeiro script de shell que imprimirá "Conhecimento é poder" na tela. Veja a lista de comandos comuns do vi As etapas a seguir são necessárias para escrever o script Shell: Exemplos: $ bash bar $ sh bar $ ./bar echo "Conhecimento é Poder" Depois de salvar o script acima, você pode executá-lo da seguinte maneira: $ ./first Anterior NOTA Na última sintaxe ./ significa diretório atual, mas apenas . (ponto) significa executar determinado arquivo de comando no shell atual sem iniciar a nova cópia do shell. A sintaxe para. O comando (ponto) é o seguinte Sintaxe: . nome do comando Nota: Isso definirá a permissão de leitura, gravação e execução (7) para o proprietário, para o grupo e outras permissões são somente leitura e execução (5). #Meu primeiro script de shell# claro Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução à programação Shell (3) Execute seu script como sintaxe: bash nome-seu-script sh nome-seu-script ./nome- seu-script [Anúncio] [Obtenha o domínio Cyberciti por apenas Rs.445 com 2 e-mails grátis] LSST v1.05r3 > Capítulo 2 > Como escrever script de shell http://www.cyberciti.biz/pdf/lsst/ch02sec01.html (1 de 2) [29/07/2002 18:51:39] Como escrever script de shell Machine Translated by Google
  • 25. Como o Shell localiza o arquivo (meu próprio diretório bin para executar o script) cal Significado A primeira tela ficará clara e, em seguida, Conhecimento é Poder será impresso na tela. claro claro Próximo Isso não executará o script, pois não definimos primeiro a permissão de execução para nosso script; para fazer isso digite o comando $ chmod 755 first $ ./first #Meu primeiro script de shell# # Sintaxe: # comment-text limpa a tela Para imprimir mensagem ou valor de variáveis na tela, usamos o comando echo, a forma geral do comando echo é a seguinte sintaxe: echo "Mensagem" Introdução à programação Shell # Script para imprimir informações do usuário que está atualmente logado e horário Inicie o editor vi Exercício: 1) Escreva o seguinte script de shell, salve-o, execute-o e anote sua saída. Ponto Futuro: No final, por que a instrução exit 0 é usada? Consulte o status de saída para obter mais informações. saída 0 $ vi primeiro Dica: Para arquivos de script de shell, tente fornecer uma extensão de arquivo como .sh, que pode ser facilmente identificada por você como script de shell. Comando(s) de script echo "Olá $USER" echo "Hoje é c ";date echo "Número de login do usuário: c" ; quem | wc -l echo "Calendário" echo "Conhecimento é Poder" Variáveis no Shell Acima data atual Lar # # seguido de qualquer texto é considerado comentário. O comentário fornece mais informações sobre o script, explicação lógica sobre o shell script. $viginfo## Anterior [Obtenha o domínio Cyberciti por apenas Rs.445 com 2 e-mails grátis] LSST v1.05r3 > Capítulo 2 > Como escrever script de shell http://www.cyberciti.biz/pdf/lsst/ch02sec01.html (2 de 2) [29/07/2002 18:51:39] [Anúncio] Machine Translated by Google
  • 26. LETRAS MAIÚSCULAS. Nº de colunas para nossa tela Nº de colunas para nossa tela Próximo SHELL=/bin/bash a) $echo $HOME PS1=[u@hW]$ Exercício: Capítulo 2: Introdução à programação Shell PATH=/usr/bin:/sbin:/bin:/usr/sbin No Linux (Shell), existem dois tipos de variáveis: Nosso nome de concha Tutorial de script de shell do Linux (LSST) v1.05r3 um por vez). BASH=/bin/bash que é usado para armazenar nossos dados. O programador pode dar um nome exclusivo a este local/endereço de memória LINHAS=25 Variável de sistema Nossas configurações imediatas das variáveis acima contém o seguinte: Nosso tipo de sistema operacional Nome de usuário que está atualmente conectado a este PC Para processar nossos dados/informações, os dados devem ser mantidos na memória RAM do computador. A memória RAM é letras mais baixas. COLUNAS=80 BASH_VERSION=1.14.7(1) (2) Variáveis definidas pelo usuário (UDV) - Criadas e mantidas pelo usuário. Este tipo de variável definida em alunos Nosso nome de registro NOME DE USUÁRIO=vivek 1) Se você deseja imprimir a localização do seu diretório inicial, dê o comando: OU (1) Variáveis de sistema - Criadas e mantidas pelo próprio Linux. Este tipo de variável definida em Nosso nome de versão do shell Anterior Nosso diretório inicial PWD=/home/alunos/Comum OSTYPE=Linux Nosso nome de concha $echo $HOME Significado LOGNAME=alunos Nosso diretório de trabalho atual chamada variável de memória ou variável (é um local de armazenamento nomeado que pode assumir valores diferentes, mas apenas $ echo $ NOME DE USUÁRIO NOTA que algumas das configurações acima podem ser diferentes em seu ambiente PC/Linux. Você pode imprimir qualquer dividido em pequenos locais, e cada local tinha um número único chamado local/endereço de memória, Você pode ver as variáveis do sistema fornecendo comandos como $ set. Algumas das variáveis importantes do sistema são: CASA=/casa/vivek Nossas configurações de caminho http://www.cyberciti.biz/pdf/lsst/ch02sec02.html (1 de 2) [29/07/2002 18:51:42] LSST v1.05r3 > Capítulo 2 > Variáveis no Shell Variáveis no Shell Machine Translated by Google
  • 27. Acima Anterior Lar Próximo Cuidado: Não modifique a variável do sistema, pois isso pode criar problemas em algum momento. Como escrever script de shell Qual dos comandos acima está correto e por quê? Clique aqui para responder. (b) $ eco HOME (UDV) Como definir variáveis definidas pelo usuário LSST v1.05r3 > Capítulo 2 > Variáveis no Shell http://www.cyberciti.biz/pdf/lsst/ch02sec02.html (2 de 2) [29/07/2002 18:51:42] Machine Translated by Google
  • 28. nome da variável = valor Sintaxe: 'valor' é atribuído a um determinado 'nome de variável' e o valor deve estar no lado direito = sinal. Tutorial de script de shell do Linux (LSST) v1.05r3 $n=10 Anterior Variáveis no shell $vech=Ônibus UDV e variável de sistema) Para definir uma variável chamada n com valor 10 Para definir UDV use a seguinte sintaxe $ 10=não # Erro, NÃO Ok, o valor deve estar no lado direito do sinal =. Próximo Próximo Regras para nomear nomes de variáveis (ambos Para definir a variável chamada 'vech' com valor Bus Exemplo: Capítulo 2: Introdução à programação Shell Lar Acima Anterior $ não = 10 # tudo bem LSST v1.05r3 > Capítulo 2 > Como definir variáveis definidas pelo usuário (UDV) http://www.cyberciti.biz/pdf/lsst/ch02sec03.html [29/07/2002 18:51:44] (UDV) Como definir variáveis definidas pelo usuário Machine Translated by Google
  • 29. (2) Não coloque espaços em ambos os lados do sinal de igual ao atribuir valor à variável. Por exemplo, na seguinte declaração de variável não haverá erro $ no=10 Mas haverá problema para qualquer uma das seguintes declarações de variável: $ no =10 $ no= 10 $ no = 10 (1) O nome da variável deve começar com caractere alfanumérico ou sublinhado (_), seguido de um ou mais caracteres alfanuméricos. Por exemplo, as variáveis de shell válidas são as seguintes HOME SYSTEM_VERSION vech (3) As variáveis diferenciam maiúsculas de minúsculas, assim como o nome do arquivo no Linux. Por exemplo, $ no=10 $ No=11 $ NO=20 $ nO=2 Acima de tudo estão nomes de variáveis diferentes, então para imprimir o valor 20 temos que usar $ echo $NO e nenhum dos seguintes $ echo $no # irá imprima 10, mas não 20 $ echo $No # imprimirá 11, mas não 20 $ echo $nO # imprimirá 2, mas não 20 (5) Não use ?,* etc, para nomear seus nomes de variáveis. Próximo não Anterior Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução à programação Shell Tente imprimir seu valor emitindo o seguinte comando $ echo $vech Nada será mostrado porque a variável não tem valor, ou seja, variável NULL. (4) Você pode definir a variável NULL da seguinte forma (variável NULL é uma variável que não tem valor no momento da definição) Por exemplo, $ vech= $ vech="" Próximo Lar Anterior LSST v1.05r3 > Capítulo 2 > Regras para nomear nomes de variáveis (UDV e variáveis de sistema) http://www.cyberciti.biz/pdf/lsst/ch02sec04.html (1 de 2) [29/07/2002 18:51:46] Regras para nomear nomes de variáveis (ambos UDV e variável de sistema) Machine Translated by Google
  • 30. (UDV) Acima Como imprimir ou acessar o valor do UDV Como definir variáveis definidas pelo usuário (Variáveis definidas pelo usuário) http://www.cyberciti.biz/pdf/lsst/ch02sec04.html (2 de 2) [29/07/2002 18:51:46] LSST v1.05r3 > Capítulo 2 > Regras para nomear nomes de variáveis (UDV e variáveis de sistema) Machine Translated by Google
  • 31. Para imprimir contém a variável 'vech' digite $ echo $vech Defina a variável vech en da seguinte forma: $ vech=Bus $ n=10 Ele irá imprimir 'Bus', para imprimir contém a variável 'n' digite o comando da seguinte forma $ echo $n Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução à programação Shell Para respostas clique aqui Anterior Lar Para imprimir ou acessar a UDV use a seguinte sintaxe Q.5.Modifique acima e armazene a divisão de xey na variável chamada z Q.6.Aponte o erro, se houver, no script a seguir $ vi variscript # # # Script para testar MEU conhecimento sobre variáveis! # meunome=Vivek myos = TroubleOS myno=5 echo "Meu nome é $meunome" echo "Meu sistema operacional é $myos" echo "Meu número é myno, você pode ver este número" Sintaxe: $nomedavariável Q.2.Como definir a variável xn com valor Rani e imprimi-la na tela Q.3.Como imprimir a soma de dois números, digamos 6 e 3? Q.4.Como definir duas variáveis x=20, y=5 e depois imprimir a divisão de xey (ou seja, x/y) Cuidado: Não tente $ echo vech, pois ele imprimirá vech em vez do valor 'Bus' e $ echo n, pois imprimirá n em vez do valor '10'. Você deve usar $ seguido do nome da variável. Anterior Próximo Próximo Exercício Q.1.Como definir a variável x com valor 10 e imprimi-la na tela. http://www.cyberciti.biz/pdf/lsst/ch02sec05.html (1 de 2) [29/07/2002 18:51:48] LSST v1.05r3 > Capítulo 2 > Como imprimir ou acessar o valor de UDV (variáveis definidas pelo usuário) (Variáveis definidas pelo usuário) Como imprimir ou acessar o valor do UDV Machine Translated by Google
  • 32. Acima UDV e variável de sistema) Regras para nomear nomes de variáveis (ambos Comando de eco LSST v1.05r3 > Capítulo 2 > Como imprimir ou acessar o valor de UDV (variáveis definidas pelo usuário) http://www.cyberciti.biz/pdf/lsst/ch02sec05.html (2 de 2) [29/07/2002 18:51:48] Machine Translated by Google
  • 33. Opções Acima Exibe texto ou valor de variáveis na tela. Tutorial de script de shell do Linux (LSST) v1.05r3 -n Não gera a nova linha final. t guia horizontal barra invertida Por exemplo, $ echo -e "Uma maçã por dia mantém longe attdoctorn" Próximo Use o comando echo para exibir texto ou valor da variável. n nova linha variáveis definidas) r retorno de carro echo [opções] [string, variáveis...] Lar b retrocesso Anterior Anterior Como imprimir ou acessar o valor do UDV (User Próximo c suprimir a nova linha final -e Habilite a interpretação dos seguintes caracteres de escape de barra invertida nas strings: Capítulo 2: Introdução à programação Shell Como exibir texto colorido na tela com efeitos de negrito ou piscar, como imprimir texto em qualquer linha ou coluna Aritmética de casca na tela, clique aqui para mais! um alerta (sino) http://www.cyberciti.biz/pdf/lsst/ch02sec06.html [29/07/2002 18:51:50] LSST v1.05r3 > Capítulo 2 > Comando echo Comando de eco Machine Translated by Google
  • 34. Para a última afirmação, não os seguintes pontos Nota: expr 20 %3 - Resto lido como 20 mod 3 e resto é 2. expr 10 * 3 - Multiplicação use * e não * desde seu curinga. Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução à programação Shell (1) Primeiro, antes da palavra-chave expr, usamos o sinal ` (aspas crases) e não o sinal (aspas simples, ou seja, '). Aspas atrás geralmente são encontradas na tecla abaixo do til (~) no teclado do PC OU acima da tecla TAB. Acima Próximo Mais sobre citações Sintaxe: expr op1 operador matemático op2 Comando de eco anterior Lar Exemplos: $ expr 1 + 3 $ expr 2 - 1 $ expr 10/2 $ expr 20% 3 $ expr 10 * 3 $ echo `expr 6 + 3` (4) Aqui, se você usar aspas duplas ou simples, NÃO funcionará. Por exemplo, $ echo "expr 6 + 3" # Irá imprimir expr 6 + 3 $ echo 'expr 6 + 3' # Irá imprimir expr 6 + 3 Próximo Use para realizar operações aritméticas. Consulte Substituição de parâmetros - Para economizar seu tempo. (2) Em segundo lugar, expr também termina com `, ou seja, aspas anteriores. Anterior (3) Aqui expr 6 + 3 é avaliado como 9, então o comando echo imprime 9 como soma http://www.cyberciti.biz/pdf/lsst/ch02sec07.html [29/07/2002 18:51:52] LSST v1.05r3 > Capítulo 2 > Aritmética de Shell Aritmética de casca Machine Translated by Google
  • 35. "Aspas Duplas" - Qualquer coisa colocada entre aspas duplas removeu o significado disso Próximo Significado Tutorial de script de shell do Linux (LSST) v1.05r3 Caracteres de aspas duplas (exceto e $). Exemplo: $ echo "Hoje é data" Não é possível imprimir a mensagem com a data de hoje. Status de saída Existem três tipos de citações ` Lar `Citação anterior` - Para executar o comando Nome das citações Acima Citação anterior Próximo Anterior Aritmética de casca ' " Capítulo 2: Introdução à programação Shell $ echo "Hoje é `data`". Ele imprimirá a data de hoje como Hoje é terça-feira, janeiro ..... Você pode ver que a instrução `date` usa aspas invertidas? Anterior Aspas simples 'Aspas simples' - Entre aspas simples permanece inalterado. http://www.cyberciti.biz/pdf/lsst/ch02sec08.html [29/07/2002 18:51:53] LSST v1.05r3 > Capítulo 2 > Mais sobre cotações Mais sobre citações Machine Translated by Google
  • 36. Mas como descobrir o status de saída do comando ou script de shell? Este valor é conhecido como Status de Saída. Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução à programação Shell Simples, para determinar esse status de saída você pode usar $? variável especial do shell. $echon$? $ eco $? $? variável útil, quer saber mais sobre essas variáveis do Linux, clique aqui para explorá-las! (1) Se o valor de retorno for zero (0), o comando foi bem-sucedido. $ oeste selvagem pode funcionar? $ eco $? $ data $ eco $? (2) Se o valor de retorno for diferente de zero, o comando não foi bem-sucedido ou algum tipo de erro ao executar o comando/shell script. Exercício Tente os seguintes comandos e não desça o status de saída: $ expr 1 + 3 $ echo $? Anterior Próximo $ echo Bem-vindo $ echo $? Por exemplo (este exemplo assume que unknow1file não existe em seu disco rígido) $ rm unknow1file Ele mostrará o erro da seguinte forma rm: não é possível remover `unkowm1file': Esse arquivo ou diretório não existe e depois disso se você der o comando $ echo $? ele imprimirá um valor diferente de zero para indicar erro. Agora dê o comando $ ls $ echo $? Ele imprimirá 0 para indicar que o comando foi bem-sucedido. Por padrão no Linux, se um determinado comando/shell script for executado, ele retornará dois tipos de valores que são usados para ver se o comando ou shell script executado foi bem-sucedido ou não. http://www.cyberciti.biz/pdf/lsst/ch02sec09.html (1 de 2) [29/07/2002 18:51:55] LSST v1.05r3 > Capítulo 2 > Status de saída Status de saída Machine Translated by Google
  • 37. Lar Próximo Mais sobre citações Anterior Acima A declaração lida http://www.cyberciti.biz/pdf/lsst/ch02sec09.html (2 de 2) [29/07/2002 18:51:55] LSST v1.05r3 > Capítulo 2 > Status de saída Machine Translated by Google
  • 38. # Seu primeiro nome, por favor: vivek Anterior Capítulo 2: Introdução à programação Shell o teclado é armazenado (atribuído) à variável fname. $ chmod 755 digaH Curingas (abreviação de nome de arquivo ou meta Tutorial de script de shell do Linux (LSST) v1.05r3 insere o nome no teclado (depois de fornecer o nome você deve pressionar a tecla ENTER) e insere o nome através Execute-o da seguinte maneira: leia variável1, variável2,...variávelN Lar leia nome Use para obter entrada (dados do usuário) do teclado e armazenar (dados) na variável. # Anterior Olá vivek, vamos ser amigos! Próximo #Script para ler seu nome no teclado $ vi dizerH $ ./digaH Personagens) Próximo echo "Olá $fname, vamos ser amigos!" Acima O script a seguir primeiro pergunta ao usuário o nome e depois espera para inserir o nome do usuário por meio do teclado. Então usuário Sintaxe: echo "Seu primeiro nome, por favor:" Status de saída http://www.cyberciti.biz/pdf/lsst/ch02sec10.html [29/07/2002 18:51:56] LSST v1.05r3 > Capítulo 2 > A instrução read A declaração lida Machine Translated by Google
  • 39. $l é um* extensão .c, mas o nome do arquivo deve $ls ? Próximo $ ls /bin/[ac]* $ls /bin/[!ao] [..-..] Um par de caracteres separados por um sinal de menos indica um intervalo. /bin/chgrp /bin/consolechars /bin/csh Capítulo 2: Introdução à programação Shell letras a,b,c mostrará todos os arquivos * Exemplos Tutorial de script de shell do Linux (LSST) v1.05r3 $ ls *.c caracteres. /Forma abreviada têm 3 caracteres e nome de arquivo extensão .c Corresponde a qualquer um dos /bin/arch /bin/awk /bin/bsh /bin/chmod /bin/ash /bin/nomebase /bin/cat / bin/chown /bin/ash.static /bin/bash Corresponde a qualquer caractere único. $ls[abc]* Se o primeiro caractere após [ for um ! ou um ^, então qualquer caractere não incluído será correspondido, ou seja, não o nome começa com a letra 'a' mostrará todos os arquivos cujos nomes comece com 'ut'. ? mostrará todos os arquivos cujo primeiro [...] $ ls /bin/[^ao] Mas Anterior $ lsut*.c mostrará todos os arquivos com $ls* Exemplo: mostrará todos os arquivos começando com Observação: /bin/cpio Corresponde a qualquer string ou grupo de comece com fo caracteres fechados Significado /bin/cp Mostrará todos os nomes de arquivos começando com a letra a, b ou c como mostre-nos o nome do arquivo que começa com a,b,c,e...o, como Curinga mostrará todos os arquivos com têm 1 caractere mostrará todos os arquivos cujos nomes $ ls fo? http://www.cyberciti.biz/pdf/lsst/ch02sec11.html (1 de 2) [29/07/2002 18:51:58] LSST v1.05r3 > Capítulo 2 > Curingas (abreviação de nome de arquivo ou metacaracteres) Curingas (abreviação de nome de arquivo ou meta Personagens) Machine Translated by Google
  • 40. /bin/sh /bin/tcsh /bin/vi /bin/sfxload /bin/tar /bin/usleep /bin/ps / bin/pwd / bin/red / bin/remadmin /bin/sed /bin/ rm /bin/ rmdir /bin/ rpm Anterior /bin/su /bin/uname /bin/ypdomainname Mais comandos em uma linha de comando /bin/setserial /bin/sync /bin/userconf /bin/zcat Acima /bin/classificar /bin/true /bin/wcomp /bin/digaOlá /bin/stty /bin/umount /bin/xconf Próximo A declaração lida /bin/rvi / bin/rview /bin/dormir /bin/tocar /bin/visualizar Lar http://www.cyberciti.biz/pdf/lsst/ch02sec11.html (2 de 2) [29/07/2002 18:51:58] LSST v1.05r3 > Capítulo 2 > Curingas (abreviação de nome de arquivo ou metacaracteres) Machine Translated by Google
  • 41. Exemplos: Para executar dois comandos com uma linha de comando. Tutorial de script de shell do Linux (LSST) v1.05r3 $ data;quem Lar Acima Próximo Sintaxe: Curingas (abreviação de nome de arquivo ou meta Personagens) comando1;comando2 para o mesmo propósito, você deve colocar ponto e vírgula entre a data e o comando who. Próximo Anterior Irá imprimir a data de hoje seguida pelos usuários que estão logados no momento. Observe que você não pode usar Capítulo 2: Introdução à programação Shell Processamento de linha de comando Anterior $ data quem http://www.cyberciti.biz/pdf/lsst/ch02sec12.html [29/07/2002 18:52:00] LSST v1.05r3 > Capítulo 2 > Mais comandos em uma linha de comando Mais comandos em uma linha de comando Machine Translated by Google
  • 42. Todo o resto na linha de comando é considerado argumento para este comando. Por exemplo $ correio raj eu Anterior 3 correspondência 2 -r, -n e meuf Capítulo 2: Introdução à programação Shell grate_stories_of ? $ mv y.bak y.ok Comando Tutorial de script de shell do Linux (LSST) v1.05r3 incitar. Agora surge mais uma pergunta : O que são comandos? O que aconteceu quando você digitou $ ls $ cp e y.bak OBSERVAÇÃO: Ele imprimirá uma mensagem semelhante a - grate_stories_of: Esse arquivo ou diretório não existe. Responder: Tente determinar o comando e os argumentos dos seguintes comandos 1 y.bak e y.ok mv 0 data Tente o seguinte comando (supõe que o arquivo "grate_stories_of" não existe em seu sistema) O nome do comando é tail e os argumentos são +10 e myf. $ data $ sort -r -n meuf Próximo $ cauda +10 myf CP 0 cauda A primeira palavra na linha de comando é ls - é o nome do comando a ser executado. $ cauda -10 myf Argumento real 1 organizar (ou seja, $#) 2 Raj $ ls foo Nº de argumentos para este comando 2 ls é o nome de um comando real e o shell executou esse comando quando você digitou o comando no shell -10 e meu Deus $# contém o número de argumentos especificados na linha de comando. E $* ou $@ referem-se a todos os argumentos passados para você e você.bak claro $ ls grate_stories_of Exercício $ claro foo http://www.cyberciti.biz/pdf/lsst/ch02sec13.html (1 de 2) [29/07/2002 18:52:02] LSST v1.05r3 > Capítulo 2 > Processamento de linha de comando Processamento de linha de comando Machine Translated by Google
  • 43. Mais comandos em uma linha de comando Acima Anterior roteiro. Por que os argumentos da linha de comando são necessários Lar Próximo http://www.cyberciti.biz/pdf/lsst/ch02sec13.html (2 de 2) [29/07/2002 18:52:02] LSST v1.05r3 > Capítulo 2 > Processamento de linha de comando Machine Translated by Google
  • 44. Vamos usar o comando ls $ Ls -a /* Este comando tem 2 argumentos de linha de comando -a e /* é outro. Para script de shell, $ myshell foo bar Aqui rm é o comando e filename é o arquivo que você deseja remover. Dessa forma, você segue o comando rm qual arquivo deseja remover. Portanto, estamos fazendo comunicação unilateral com nosso comando, especificando o nome do arquivo. Além disso, você pode passar argumentos de linha de comando para o seu script para torná-lo mais amigável. Mas como acessamos o argumento da linha de comando em nosso script. Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução à programação Shell Nome do Shell Script, ou seja, myshell Próximo cara, é $ 1 barra custa $ 2 Vamos pegar o comando rm, que é usado para remover o arquivo, mas qual arquivo você deseja remover e como você dirá isso ao comando rm (mesmo o comando rm não pergunta o nome do arquivo que você gostaria de remover). Então o que fazemos é escrever o comando da seguinte forma: $ rm {nome do arquivo} No shell, se quisermos nos referir a este argumento de linha de comando, nos referimos acima como segue 2. Informar ao utilitário/comando qual arquivo ou grupo de arquivos processar (leitura/gravação de arquivos). Anterior meu shell é $ 0 Primeiro argumento de linha de comando passado para myshell, ou seja, foo 1. Informar ao comando/utilitário qual opção usar. Segundo argumento da linha de comando passado para myshell, ou seja, bar http://www.cyberciti.biz/pdf/lsst/ch02sec14.html (1 de 3) [29/07/2002 18:52:05] LSST v1.05r3 > Capítulo 2 > Por que argumentos de linha de comando são necessários Por que os argumentos da linha de comando são necessário Machine Translated by Google
  • 45. O script a seguir é usado para imprimir o argumento ling do comando e mostrará como acessá-los: # matemática $ cal Aqui $# (variável embutida no shell) será 2 (já que foo e bar apenas dois argumentos), observe de cada vez Nº de argumentos para o script $# 1 Nº de argumentos (ou seja, $#), 4 GRANDE $ matemática 4 - 7 11 echo "Todos eles são: - $* ou $@" -5 2 parâmetros". encontrarBS 3 Nome do script de shell ($0), - Nome do script de shell $0 echo "O número total de argumentos da linha de comando é $#" $ 1 $ 2 $ 3 $ 4 $ 5 `$1,$2...$9`). Observe que $1..$9, ou seja, argumentos de linha de comando para shell script, são conhecidos como "posicionais meu +20 24 4 #!/bin/sh soma $Ls* echo "$2 é o segundo argumento" cal Tente escrever o seguinte para comandos 0 $ soma 11 20 # 7 Responder echo "$1 é o primeiro argumento" Ls Argumento real ($1,..$9) esses 9 argumentos podem ser usados de $1..$9. Você também pode referir todos eles usando $* (que se expande para 20 $ bp -5 myf +20 $ vi demonstração # Script que demonstra, argumentos de linha de comando $ encontrarBS 4 8 24 GRANDE d 8 0 E argumento real (ou seja, $ 1, $ 2 etc.) 4 $ d echo "$0 é o nome do script" bp * 3 Exercício Execute-o da seguinte maneira http://www.cyberciti.biz/pdf/lsst/ch02sec14.html (2 de 3) [29/07/2002 18:52:05] LSST v1.05r3 > Capítulo 2 > Por que argumentos de linha de comando são necessários Machine Translated by Google
  • 46. Portanto, todas as instruções no shell script são inválidas: $1 = 5 $2 = "My Name" Verifique se está funcionando ou não (?) $ demo $ demo Olá Mundo Observe também que você não pode atribuir o novo valor aos argumentos da linha de comando, ou seja, parâmetros posicionais. Lar Se o teste for bem-sucedido, copie o script para seu próprio diretório bin (instale o script para uso privado) $ cp demo ~/bin NOTA: Depois disso, para qualquer script você terá que usar o comando acima, em sequência, não vou mostrar todos os comandos acima para o restante do Tutorial. Execute-o e teste-o da seguinte maneira: $ ./demo Hello World Defina a permissão de execução da seguinte forma: $ chmod 755 demo Anterior Acima Próximo Redirecionamento de saída/entrada padrão ieInput - Redirecionamento de sa Processamento de linha de comando http://www.cyberciti.biz/pdf/lsst/ch02sec14.html (3 de 3) [29/07/2002 18:52:05] LSST v1.05r3 > Capítulo 2 > Por que argumentos de linha de comando são necessários Machine Translated by Google
  • 47. Existem três símbolos principais de redirecionamento >,>>,< $ ls > nome do arquivo Significa colocar a saída do comando ls no nome do arquivo. Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução à programação Shell (1) > Sintaxe do símbolo do redirecionador: comando Linux > nome do arquivo Para gerar o resultado dos comandos Linux (saída do comando ou script shell) para o arquivo. Observe que se o arquivo já existir, ele será sobrescrito, caso contrário, um novo arquivo será criado. Por exemplo, para enviar a saída do comando ls, dê $ ls > myfiles Agora, se o arquivo 'myfiles' existir em seu diretório atual, ele será sobrescrito sem qualquer tipo de aviso. Crie um nome de arquivo de texto da seguinte maneira Quase todos os comandos fornecem saída na tela ou recebem entrada do teclado, mas no Linux (e também em outros sistemas operacionais) é possível enviar a saída para um arquivo ou ler a entrada do arquivo. Clique aqui para saber mais sobre Redirecionamento de E/S Você também pode usar os redirecionadores acima simultaneamente da seguinte maneira Por exemplo, o comando $ ls fornece saída para a tela; para enviar a saída para o arquivo do comando ls dê o comando ele será aberto e novas informações/dados serão gravados no FIM do arquivo, sem perder os anteriores , (2) >> Sintaxe do símbolo do redirecionador: comando Linux >> nome do arquivo Para gerar o resultado dos comandos Linux (saída do comando ou script shell) para o FIM do arquivo. Observe que se o arquivo existir informações/dados, e se o arquivo não existir, um novo arquivo será criado. Por exemplo, para enviar a saída do comando date para um arquivo já existente, dê o comando $ date >> meus arquivos Anterior (3) < Sintaxe do símbolo do redirecionador: comando Linux <nome do arquivo Para obter entrada para o comando Linux do arquivo em vez do teclado. Por exemplo, para obter entrada para o comando cat, dê $ cat <myfiles Próximo LSST v1.05r3 > Capítulo 2 > Redirecionamento de saída/entrada padrão, ou seja, redirecionamento de entrada - saída http://www.cyberciti.biz/pdf/lsst/ch02sec15.html (1 de 2) [29/07/2002 18:52:06] Entrada - Redirecionamento de saída Redirecionamento de saída/entrada padrão, ou seja Machine Translated by Google
  • 48. O comando tr é usado para traduzir todos os caracteres minúsculos em letras maiúsculas. Ele recebe a entrada do arquivo sname e a saída do tr é redirecionada para o arquivo cap_names. BABU $cat > sname vivek ashish zebra babu Pressione CTRL + D para salvar. Ponto Futuro: Tente seguir o comando e descubra o ponto mais importante: $ sort > new_sorted_names <sname $ cat new_sorted_names CINZA Próximo Cano ZEBRA Lar Experimente mais um exemplo para esclarecer sua ideia: $ tr "[az]" "[AZ]" < sname > cap_names $ cat cap_names VIVEK Acima Anterior Agora emita o seguinte comando. $ sort <sname> nomes_classificados $ cat nomes_classificados ashish babu vivek zebra No exemplo acima, o comando sort ($ sort <sname> sorted_names) recebe a entrada do arquivo sname e a saída do comando sort (ou seja, nomes classificados) é redirecionada para o arquivo sorted_names. Por que os argumentos da linha de comando são necessários http://www.cyberciti.biz/pdf/lsst/ch02sec15.html (2 de 2) [29/07/2002 18:52:06] LSST v1.05r3 > Capítulo 2 > Redirecionamento de saída/entrada padrão, ou seja, redirecionamento de entrada - saída Machine Translated by Google
  • 49. Comando usando Pipes Exemplos: Linux Shell Scripting Tutorial (LSST) v1.05r3 Capítulo 2: Introdução à programação Shell Significado ou uso de tubos A saída do comando ls é fornecida como entrada para o comando more, para que a saída seja impressa em uma página inteira de tela por vez. Pipe Definido como: "Um pipe nada mais é do que um local de armazenamento temporário onde a saída de um comando é armazenada e depois passada como entrada para o segundo comando. Pipes são usados para executar mais de dois comandos (vários comandos) na mesma linha de comando. " $ quem | wc-l $ ls -l | wc-l Sintaxe: comando1 | comando2 $ quem | organizar Um pipe é uma forma de conectar a saída de um programa à entrada de outro programa sem nenhum arquivo temporário. $ quem | classificar> lista_usuários A saída do comando who é fornecida como entrada para o comando sort Para que ele imprima a lista classificada de usuários O mesmo que acima, exceto que a saída do sort é enviada para (redirecionado) o arquivo user_list A saída do comando who é fornecida como entrada para o comando wc Para que ele imprimir o número do usuário que faz logon no sistema A saída do comando ls é fornecida como entrada para o comando wc Para que ele imprima o número de arquivos no diretório atual. Anterior $ ls | mais Próximo LSST v1.05r3 > Capítulo 2 > Tubulações http://www.cyberciti.biz/pdf/lsst/ch02sec16.html (1 de 2) [29/07/2002 18:52:08] Tubos Machine Translated by Google
  • 50. ieInput - Redirecionamento de saída determinado usuário está logado ou não) Anterior Redirecionamento de saída/entrada padrão Lar nome se ele está logado ou nada está impresso (Ver $ quem | grep raju comando Para que ele imprima se um usuário específico A saída do comando who é fornecida como entrada para grep Acima Próximo Filtro http://www.cyberciti.biz/pdf/lsst/ch02sec16.html (2 de 2) [29/07/2002 18:52:08] LSST v1.05r3 > Capítulo 2 > Tubulações Machine Translated by Google
  • 51. contém da linha número 20 à linha número 30 e armazene esse resultado em um arquivo chamado 'hlist' e depois forneça Suponha que você tenha um arquivo chamado 'hotel.txt' com dados de 100 linhas e de 'hotel.txt' você gostaria de imprimir Tutorial de script de shell do Linux (LSST) v1.05r3 comando: Aqui uniq é o filtro que recebe sua entrada do comando sort e passa essas linhas como entrada para uniq; Então A saída do uniqs é redirecionada para o arquivo "u_sname". Anterior Se um comando do Linux aceitar sua entrada da entrada padrão e produzir sua saída na saída padrão Considere mais um exemplo a seguir O que são processos $ sort < nome | uniq > seu_nome é conhecido como filtro. Um filtro executa algum tipo de processo na entrada e fornece saída. Por exemplo. linha número 20 de determinado arquivo, ou seja, hotel.txt) e passa essas linhas como entrada para head, cuja saída é Próximo Acima Próximo redirecionado para o arquivo 'hlist'. $ tail +20 < hotel.txt | head -n30 >hlista Capítulo 2: Introdução à programação Shell Tubos Lar Aqui o comando head é o filtro que recebe sua entrada do comando tail (o comando tail começa a selecionar em Anterior http://www.cyberciti.biz/pdf/lsst/ch02sec17.html [29/07/2002 18:52:09] LSST v1.05r3 > Capítulo 2 > Filtro Filtro Machine Translated by Google
  • 52. processo. Comando ls ou uma solicitação para listar arquivos em um diretório e todos os subdiretórios em seu diretório atual - é um Tutorial de script de shell do Linux (LSST) v1.05r3 Processo definido como: Próximo Por que o processo é necessário Processo é um tipo de programa ou tarefa realizada pelo seu PC. Por exemplo Lar Acima $ ls -lR Anterior Próximo Filtro "Um processo é um programa (comando dado pelo usuário) para realizar um trabalho específico. No Linux, quando você inicia Capítulo 2: Introdução à programação Shell processo, fornece um número para processar (chamado PID ou process-id), o PID começa de 0 a 65535." Anterior http://www.cyberciti.biz/pdf/lsst/ch02sec18.html [29/07/2002 18:52:11] LSST v1.05r3 > Capítulo 2 > O que são processos O que são processos Machine Translated by Google
  • 53. $ls/-R | wc-l comando como: Tutorial de script de shell do Linux (LSST) v1.05r3 Este comando levará muito tempo para pesquisar todos os arquivos do seu sistema. Então você pode executar esse comando em (PID), este PID pode ser usado para se referir a um processo específico em execução." Anterior O que são processos Como você sabe, o Linux é um sistema operacional multiusuário e multitarefa. Isso significa que você pode executar mais de dois processos Processo e PID definidos como: "Uma instância do comando em execução é chamada de processo e o número impresso pelo shell é chamado de process-id simultaneamente, se desejar. Por exemplo, para descobrir quantos arquivos você tem em seu sistema, você pode fornecer O e comercial (&) no final do comando informa aos shells para iniciar o processo (ls / -R | wc -l) e executá-lo em Anterior Próximo Comando(s) do Linux relacionados ao processo Próximo background executa o próximo comando imediatamente. Em segundo plano ou simultaneamente, dando um comando como Capítulo 2: Introdução à programação Shell Lar Acima $ls/-R | wc -l& http://www.cyberciti.biz/pdf/lsst/ch02sec19.html [29/07/2002 18:52:12] LSST v1.05r3 > Capítulo 2 > Por que o processo é necessário Por que o processo é necessário Machine Translated by Google
  • 54. Comando Linux relacionado ao processo Em relação a esta situação, responda à seguinte questão: process Para interromper todos os processos, exceto seu shell kill 0 Para processamento em segundo plano (com &, $ killall httpd se o servidor web Apache Próximo e outras informações como memória combinação com o comando grep Você está trabalhando em sua estação de trabalho Linux (pode estar aprendendo LSST ou algum outro trabalho como enviar Capítulo 2: Introdução à programação Shell ps aux kill process Para parar processos por nome, ou seja, para matar obs: Tutorial de script de shell do Linux (LSST) v1.05r3 Para ver o processo atualmente em execução Para parar qualquer processo por PID, ou seja, para $ matar 1012 NOTA que você só pode encerrar processos criados por você. Um administrador quase pode matar Use este comando comando linux & processos junto com os processos Para ver se um determinado processo é $ ps machado | grep httpd machado ps | grep process-U-quer-ver atualizações. pstree As tabelas a seguir são os comandos mais comumente usados com o processo: programa em segundo plano) $ matar 0 $ ps -ag use para colocar um comando específico e o processo está em execução ou não e uso da CPU em tempo real $pstree e-mails, digitando carta), enquanto fazia esse trabalho você começou a reproduzir arquivos MP3 em sua estação de trabalho. killall {Nome do processo} processo Para obter informações sobre todos os processos em execução matar {PID} Anterior Por exemplo, você quer ver Para ver os processos atualmente em execução $ps aux tem que usar o comando ps em principal Exercício: $ps $ls/-R | wc -l& correndo ou não. Para este propósito você Exemplos* $ superior Processo de 95-98%. Mas alguns processos não podem ser eliminados, como o processo VDU. Para exibir uma árvore de processos * Para executar parte deste comando você precisa ser usuário root ou equivalente. Para este propósito Para exibir o proprietário do ps-ag então dê o comando http://www.cyberciti.biz/pdf/lsst/ch02sec20.html (1 de 2) [29/07/2002 18:52:14] LSST v1.05r3 > Capítulo 3 > Comando Linux relacionado ao processo Veja a saída do comando superior. comando pressione q. Observe que para sair do topo Machine Translated by Google
  • 55. Por que o processo é necessário 4) Você não deseja ouvir música (arquivos MP3), mas deseja continuar com outro trabalho no PC, você executará uma das seguintes ações: 1. Desligue os alto-falantes 2. Desligue o computador / desligue o sistema operacional Linux 3. Mate o processo de reprodução de MP3 4. Nenhuma das opções acima Anterior Lar 2) Como você descobrirá o processo de execução (reprodução de MP3 e digitação de letras)? Clique aqui para obter respostas. 3) "Atualmente apenas dois processos estão rodando em seu ambiente Linux/PC", É Verdadeiro ou Falso?, E como você irá verificar isso? 1) É um exemplo de multitarefa? Acima Próximo Construções Linguagem estruturada Shells (bash) LSST v1.05r3 > Capítulo 3 > Comando Linux relacionado ao processo http://www.cyberciti.biz/pdf/lsst/ch02sec20.html (2 de 2) [29/07/2002 18:52:14] Machine Translated by Google
  • 56. decisões. O que o computador sabe é 0 (zero) e 1 que é Sim ou Não. Para deixar essa ideia clara, vamos jogar 5/2 mostrando 0 (Zero). Lembre-se de que em bc, a expressão relacional sempre retorna verdadeiro (1) ou falso (0 - zero). Anterior 5 é igual a 10 5 == 10 Significado para nós Resposta do BC Capítulo 3: Construções de linguagem estruturada de shells (bash) Existe alguma diferença na tomada de decisões na vida real e nos computadores? Bem, as decisões da vida real são bastante 7 é a resposta de bc, ou seja, adição de 5 + 2, você pode até tentar 0 Tutorial de script de shell do Linux (LSST) v1.05r3 • Ciclos 7 construções de linguagem como: 1 (Um?) é a resposta de bc, Como? bc compare 5 com 2, pois 5 é maior que 2, (se eu fizer a mesma pergunta para digite 5 + 2 como: 5! = 2 NÃO 5 > 12 Expressão 5 > 12 0 Tomar decisões é uma parte importante na vida do ONCE, bem como no programa orientado pela lógica dos computadores. Na verdade $bc 5 > 2 Veja o que aconteceu se você digitar 5 > 2 da seguinte maneira Próximo algum jogo (UAU!) com bc - programa de calculadora Linux. Tente seguir o bc para esclarecer sua ideia e não anular a resposta do bc 5 NÃO é igual a 2 0 complicado para todos nós e os computadores ainda não têm tanto poder para entender nossa vida real 5 - 2 0 (Zero) indica falso, ou seja, 5 é menor que 2?, Sua resposta será não, o que é indicado por bc por 5 é maior que 12 5! = 2 5 <2 12 <2 SIM 5 + 2 você, sua resposta será SIM), bc dá esta resposta 'SIM' mostrando 1 valor. Agora tente 5 == 5 • Tomada de decisão NÃO sua Resposta 1 a lógica não é LÓGICA até que você use a tomada de decisão. Este capítulo apresenta a estrutura estruturada do bash Depois que este comando bc for iniciado e aguardando seus comandos, ou seja, faça alguns cálculos como segue 1 5 == 10 LSST v1.05r3 > Capítulo 3 > Introdução http://www.cyberciti.biz/pdf/lsst/ch03.html (1 de 2) [29/07/2002 18:52:15] Introdução Machine Translated by Google
  • 57. Significado Valor Anterior 1 é menor que 2 1 < 2 No valor do shell do Linux não zero 0 5 == 5 1 Não/Falso Sim Falso/Não -1, 32, 55 tudo menos Próximo Lar e NÃO é outro. Exemplo Mostrado no Linux Shell como Mostrado em bc como Significa que sempre que houver algum tipo de comparação no Linux Shell dá apenas duas respostas, uma é SIM Sim, verdade Comando(s) do Linux relacionados ao processo 5 é igual a 5 Lembre-se de que tanto o bc quanto o Linux Shell usam maneiras diferentes de mostrar valores Verdadeiro/ Falso Valor Zero (0) Valor diferente de zero 0 Valor diferente de zero 1 se condição 1 SIM 0 Verdadeiro/Sim Acima http://www.cyberciti.biz/pdf/lsst/ch03.html (2 de 2) [29/07/2002 18:52:15] LSST v1.05r3 > Capítulo 3 > Introdução Machine Translated by Google
  • 58. comando1 se a condição for verdadeira ou se o status de saída da condição for 0 (zero) então Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3: Construções de linguagem estruturada de shells (bash) ... Digite os seguintes comandos (supõe que você tenha um arquivo chamado foo) $ cat foo $ echo $? O comando cat retorna zero (0), ou seja, status de saída, em caso de sucesso, isso pode ser usado, na condição if a seguir, Escreva o script shell como Sintaxe: Expressão é definida como: "Uma expressão nada mais é do que uma combinação de valores, operadores relacionais (como >,<, <> etc) e operadores matemáticos (como +, -, / etc)." A seguir estão todos os exemplos de expressão: 5 > 2 3 + 6 3 * 65 a < bc > 5 c > 5 + 30 -1 se condição Condição é definida como: "Condição nada mais é do que comparação entre dois valores." se a condição usada para tomada de decisão no shell script, se a condição fornecida for verdadeira, o comando1 será executado. Para compactação, você pode usar instruções test ou [expr] ou até mesmo o status existente também pode ser usado. ... Anterior Próximo fi http://www.cyberciti.biz/pdf/lsst/ch03sec01.html (1 de 3) [29/07/2002 18:52:16] LSST v1.05r3 > Capítulo 3 > se condição se condição Machine Translated by Google
  • 59. # Script para testar o comando rm e status existente # if rm $1 gato > trmif # $ cat > showfile #!/bin/sh # #Script para imprimir o arquivo # if cat $1 então Anterior Lar Próximo Exercício (C) E se você digitar $ ./trmfi Qual será a saída? Para resposta clique aqui. Escreva o script shell da seguinte maneira: Responda à seguinte pergunta com referência ao script acima: (A) o arquivo foo existe em seu disco e você dá o comando, $ ./trmfi foo qual será a saída? Execute o script acima como: $ chmod 755 showfile $./showfile foo O nome do script do shell é showfile ($0) e foo é o argumento (que é $1). Em seguida, compare-o como segue: if cat $1 que é expandido para if cat foo. Explicação detalhada se o comando cat encontrar o arquivo foo e se for mostrado com sucesso na tela, significa que nosso comando cat foi bem-sucedido e seu status de existência é 0 (indica sucesso). Portanto, nossa condição if também é verdadeira e, portanto, a instrução echo -e "n nArquivo $1, encontrado e ecoado com sucesso" é processado pelo shell. Agora, se o comando cat não for bem-sucedido, ele retornará um valor diferente de zero (indica algum tipo de falha) e esta instrução echo -e "nnArquivo $1, encontrado e ecoado com sucesso" será ignorada pelo nosso shell. (B) Se o arquivo bar não estiver presente em seu disco e você der o comando $ ./trmfi bar , o que será gerado? echo "$1 arquivo excluído" fi então echo -e "nnArquivo $1, encontrado e ecoado com sucesso" fi Pressione Ctrl + d para salvar $ chmod 755 trmif http://www.cyberciti.biz/pdf/lsst/ch03sec01.html (2 de 3) [29/07/2002 18:52:16] LSST v1.05r3 > Capítulo 3 > se condição Machine Translated by Google
  • 60. Acima Construções Linguagem estruturada Shells (bash) comando de teste ou [expr] http://www.cyberciti.biz/pdf/lsst/ch03sec01.html (3 de 3) [29/07/2002 18:52:16] LSST v1.05r3 > Capítulo 3 > se condição Machine Translated by Google
  • 61. echo "$1 número é positivo" fi $ cat > ispositivo #!/bin/sh # # Script para ver se o argumento é positivo # if test $1 -gt 0 then Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3: Construções de linguagem estruturada de shells (bash) Execute-o da seguinte maneira: $ chmod 755 ispostive , para evitar tal erro, podemos testar se o argumento da linha de comando , Sintaxe: expressão de teste OU [expressão] Explicação detalhada A linha, if test $1 -gt 0 test para ver se o primeiro argumento da linha de comando ($1) é maior que 0. Se for verdadeiro (0), então o teste retornará 0 e a saída será impressa como 5, o número é positivo, mas para Argumento -45, não há saída porque nossa condição não é verdadeira (0) (nenhum -45 não é maior que 0), portanto, a instrução echo é ignorada. E para a última instrução não fornecemos nenhum argumento, portanto, erro ./ispostive: test: -gt: operador unário esperado, é gerado pelo shell é fornecido ou não. Exemplo: o script a seguir determina se o número do argumento fornecido é positivo. Nada é impresso O comando test ou [expr] é usado para ver se uma expressão é verdadeira e, se for verdadeira, retorna zero (0), caso contrário, retorna diferente de zero para falso. $ispostive ./ ispostive: teste: -gt: operador unário esperado $ ispostive 5 5 número é positivo Anterior test ou [expr] funciona com 1.Integer (Número sem ponto decimal) 2.Tipos de arquivo 3.Sequências de caracteres Próximo $ispositivo -45 http://www.cyberciti.biz/pdf/lsst/ch03sec02.html (1 de 3) [29/07/2002 18:52:17] LSST v1.05r3 > Capítulo 3 > comando de teste ou [expr] comando de teste ou [expr] Machine Translated by Google
  • 62. Shell também testa tipos de arquivos e diretórios declaração com Operadores lógicos são usados para combinar duas ou mais condições ao mesmo tempo string1 string1 NÃO é NULL ou não está definida -n string1 string1 NÃO é NULL e existe -ge -d diretório se [5 -ne 6] ou igual a Lógico NÃO Significado Para comparações de strings, use -ne Aritmética Normal/ É um arquivo gravável -x arquivo se [5 -ge 6] se teste 5 -gt 6 declaração com -w arquivo se [5 -le 6] se [5 -lt 6] se comando É um arquivo somente leitura Significado do Operador Matemático -lt se teste 5 -ge 6 se comando Teste Lógico E é igual a não é igual a 5! = 6 é menor que 5 <6 Matemático Arquivo não vazio 5 <= 6 se [5 -gt6] Significado -r arquivo O arquivo é executável string1 = string2 string1 é igual a string2 -le Declarações O arquivo existe ou é um arquivo normal e não um diretório -s arquivo é menor que ou se teste 5 -eq 6 se teste 5 -ne 6 -z string1 string1 é NULL e existe se teste 5 -lt 6 5 == 6 Operador no Shell 5 >= 6 Operador ! expressão expressão1 -uma expressão2 Operadores lógicos -gt Para teste Para matemática, use o seguinte operador no Shell Script Mas na Shell string1 != string2 string1 NÃO é igual a string2 -f arquivo igual a é maior que 5 > 6 é maior que se [5 -eq 6] NOTA: == é igual, != não é igual. -eq Roteiro O diretório existe e não é um arquivo Para [expr] se teste 5 -le 6 Significado LSST v1.05r3 > Capítulo 3 > comando de teste ou [expr] http://www.cyberciti.biz/pdf/lsst/ch03sec02.html (2 de 3) [29/07/2002 18:52:17] Machine Translated by Google
  • 63. Próximo comando) Acima se...senão...fi Anterior Tomada de decisão em shell script (ou seja, se Lar OU lógico expressão1 -o expressão2 http://www.cyberciti.biz/pdf/lsst/ch03sec02.html (3 de 3) [29/07/2002 18:52:17] LSST v1.05r3 > Capítulo 3 > comando de teste ou [expr] Machine Translated by Google
  • 64. a condição é zero (verdadeiro - 0) execute todos os comandos até a instrução else então Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3: Construções de linguagem estruturada de shells (bash) se a condição não for verdadeira, execute todos os comandos até fi echo "$1 número é positivo" else echo "$1 número é negativo" fi Experimente da seguinte maneira: $ chmod 755 isnump_n Próximo echo "$0: Você deve fornecer/fornecer um número inteiro" exit 1 fi se testar $1 -gt 0 então se condição Por exemplo, escreva o script da seguinte maneira: Sintaxe: Anterior $ vi isnump_n #!/bin/sh # # Script para ver se o argumento é positivo ou negativo # if [ $# -eq 0 ] then outro $ isnump_n 5 5 número é positivo $ isnump_n -45 Se a condição fornecida for verdadeira, o comando1 será executado, caso contrário, o comando2 será executado. fi http://www.cyberciti.biz/pdf/lsst/ch03sec03.html (1 de 4) [29/07/2002 18:52:18] LSST v1.05r3 > Capítulo 3 > if...else...fi se...senão...fi Machine Translated by Google
  • 65. A última amostra executada $ isnump_n 0 fornece a saída como "0 número é negativo", porque o argumento fornecido não é> 0, portanto, a condição é falsa e é considerada um número negativo. Para evitar isso, substitua a segunda instrução if por if test $1 -ge 0. -45 número é negativo Você pode escrever toda a construção if-else no corpo da instrução if ou no corpo de uma instrução else. Isso é chamado de aninhamento de ifs. | | 2 echo "Você escolhe Unix (Sun Os)" else #### aninhado if, ou seja, se dentro de if ###### 1 imprimirá o nome do script 2 imprimirá esta mensagem de erro E, finalmente, a instrução exit 1 causa o encerramento normal do programa com status de saída 1 (diferente de zero significa que o script não foi executado com êxito). se [$osch -eq 1] Explicação detalhada O primeiro script verifica se o argumento da linha de comando é fornecido ou não, se não for fornecido, ele imprime a mensagem de erro como "./ ispos_n: Você deve fornecer/ fornecer um número inteiro". A instrução if verifica se o número de argumentos ($#) passados para o script não é igual (-eq) a 0, se passamos algum argumento para o script, então esta instrução if é falsa e se nenhum argumento de linha de comando for fornecido, então esta instrução if é verdadeiro. O comando echo, ou seja, echo "$0: Você deve fornecer/fornecer um número inteiro" | | 1 ; então $ vi nestedif.sh osch=0 $ isnump_n ./ ispos_n : Você deve fornecer/ fornecer um número inteiro echo "1. Unix (Sun Os)" echo "2. Linux (Red Hat)" echo -n "Selecione sua escolha de sistema operacional [1 ou 2]?" leia osch $ isnump_n 0 0 número é negativo http://www.cyberciti.biz/pdf/lsst/ch03sec03.html (2 de 4) [29/07/2002 18:52:18] LSST v1.05r3 > Capítulo 3 > if...else...fi If-else-fi aninhado Machine Translated by Google
  • 66. $ ./nestedif.sh 1. Unix (Sun Os) então outro echo "O que você não gosta do sistema operacional Unix/Linux." ; então ecoe "Você escolhe Linux (Red Hat)" 2. Linux (Chapéu Vermelho) então fazem isto se [$osch -eq 2] $ ./nestedif.sh 1. Unix (Sun Os) se condição 2. Linux (Chapéu Vermelho) outro Você também pode usar os ifs aninhados da seguinte maneira: fi Selecione sua opção [1 ou 2]? 3 O que você não gosta do sistema operacional Unix/ Linux. .. ..... fi 2. Linux (Chapéu Vermelho) outro se condição Selecione sua opção [1 ou 2]? 2 Você escolhe Linux (Red Hat) fi .. Sintaxe: .... Selecione sua opção [1 ou 2]? 1 Você escolhe Unix (Sun Os) Execute o script de shell acima da seguinte maneira: $ chmod +x nestedif.sh $ ./ nestedif.sh 1. Unix (Sun Os) Observe que a segunda construção if-else está aninhada na primeira instrução else . Se a condição na primeira instrução if for falsa, a condição na segunda instrução if será verificada. Se também for falso, a instrução else final será executada. fazem isto http://www.cyberciti.biz/pdf/lsst/ch03sec03.html (3 de 4) [29/07/2002 18:52:18] LSST v1.05r3 > Capítulo 3 > if...else...fi Machine Translated by Google
  • 67. Acima fi Lar Próximo fazem isto Comando de teste anterior ou [expr] ..... ... Multinível if-then-else http://www.cyberciti.biz/pdf/lsst/ch03sec03.html (4 de 4) [29/07/2002 18:52:18] LSST v1.05r3 > Capítulo 3 > if...else...fi Machine Translated by Google
  • 68. condição de Elif1 a condição é zero (verdadeiro - 0) execute todos os comandos até a instrução elif Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3: Construções de linguagem estruturada de shells (bash) então fi Para instrução if-then-else multinível, tente o seguinte script: $ cat > elf # #!/bin/sh # Script para testar if..elif...else # if [ $1 -gt 0 ]; então se condição outro Nenhuma das condições acima, condição1, condição2 são verdadeiras (ou seja, todas as anteriores diferentes de zero ou falsas) execute todos os comandos até fi então então Próximo Sintaxe: condição2 é zero (verdadeiro - 0) execute todos os comandos até a instrução elif condição1 é zero (verdadeiro - 0) execute todos os comandos até a instrução elif echo "$1 é positivo" elif [ $1 -lt 0 ] então echo "$1 é negativo" elif [ $1 -eq 0 ] então echo "$1 é zero" else echo "Ops! $1 não é número, dê o número" fi Tente o script acima da seguinte maneira: $ chmod 755 elf $ ./elf 1 $ ./elf -2 $ ./elf 0 $ ./elf a Aqui o/p para a última execução de amostra: ./elf: [: -gt: unary operador esperado ./elf: [: -lt: operador unário esperado ./elf: [: -eq: operador unário esperado Ops! a não é número, dê o número condição de Elif2 Anterior http://www.cyberciti.biz/pdf/lsst/ch03sec04.html (1 de 2) [29/07/2002 18:52:19] LSST v1.05r3 > Capítulo 3 > Multinível if-then-else Multinível if-then-else Machine Translated by Google
  • 69. Anterior if...else...fi Acima esperado" ocorre, mas ainda assim nosso programa notifica esse erro ao usuário fornecendo a mensagem "Opps! a não é um número, dê um número". O programa acima apresenta erro na última execução, aqui a comparação de inteiros é esperada, portanto, erros como "./ elf: [: -gt: operador unário Loops em scripts de shell Lar Próximo LSST v1.05r3 > Capítulo 3 > Multinível if-then-else http://www.cyberciti.biz/pdf/lsst/ch03sec04.html (2 de 2) [29/07/2002 18:52:19] Machine Translated by Google
  • 70. Bash suporta: grupo de instruções que é executado repetidamente é chamado de loop." Tutorial de script de shell do Linux (LSST) v1.05r3 • loop for Multinível if-then-else Lar Acima Laço definido como: (c) O corpo do loop termina com uma instrução que modifica o valor da variável de teste (condição). Anterior “O computador pode repetir instruções específicas continuamente, até que uma condição específica seja satisfeita. (a) Primeiro, a variável usada na condição do loop deve ser inicializada e, em seguida, a execução do loop começa. Anterior Próximo (b) Um teste (condição) é feito no início de cada iteração. • ciclo while Capítulo 3: Construções de linguagem estruturada de shells (bash) Próximo para loop Observe que em cada loop, http://www.cyberciti.biz/pdf/lsst/ch03sec05.html [29/07/2002 18:52:23] LSST v1.05r3 > Capítulo 3 > Loops em Shell Scripts Loops em scripts de shell Machine Translated by Google
  • 71. Sintaxe: execute um para cada item da lista até que a lista não termine (e repita todas as instruções entre do e done) feito $ cat > mtable #!/bin/sh # #Script para testar o loop # # if [ $# -eq 0 ] then echo "Erro - Número faltando no argumento da linha de comando do formulário" echo "Sintaxe: $0 número" echo "Use para imprimir tabela de multiplicação para determinado número" exit 1 fi n=$1 for i in 1 2 3 4 5 6 7 8 9 10 do echo "$n * $i = `expr $i * $n`" pronto Próximo para {nome da variável} em {lista} faça Anterior Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3: Construções de linguagem estruturada de shells (bash) $ cat > testfor for i in 1 2 3 4 5 do echo "Bem-vindo $i vezes" concluído Execute o script acima da seguinte maneira: $ chmod +x testfor $ ./ testfor O loop for primeiro cria a variável i e atribui um número a i da lista de números de 1 a 5. O shell executa a instrução echo para cada atribuição de i. (Isso geralmente é conhecido como iteração) Este processo continuará até que todos os itens da lista sejam concluídos, por isso repetirá 5 instruções de eco. Para deixar sua ideia mais clara, tente o seguinte script: Antes de tentar entender a sintaxe acima, tente o seguinte script: Salve o script acima e execute-o como: $ chmod 755 mtable $ ./ mtable 7 $ ./ mtable Para a primeira execução, o script acima imprime a tabela de multiplicação de um determinado número onde i = 1,2 ... 10 é multiplicado por determinado n (aqui LSST v1.05r3 > Capítulo 3 > Loop for http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (1 de 5) [29/07/2002 18:52:26] para Loop Machine Translated by Google
  • 72. para ((expr1; expr2; expr3)) faça Sintaxe: argumento de linha de comando 7) para produzir a tabuada como 7 * 1 = 7 7 * 2 = 14 ..... $ cat > for2 for (( i = 0 ; i <= 5; i++ )) do echo "Bem-vindo $i vezes" concluído Execute o script acima da seguinte maneira: $ chmod +x for2 $ ./ for2 Bem-vindo 0 vezes Bem-vindo 1 vezes Bem-vindo 2 vezes Bem-vindo 3 vezes Bem-vindo 4 vezes Bem-vindo 5 vezes No exemplo acima, a primeira expressão (i = 0) é usada para definir a variável de valor i como zero. Observe que para encerrar nosso script usamos o comando 'exit 1' que leva 1 como argumento (1 indica erro e, portanto, o script foi encerrado) Todas as instruções entre do e done são executadas repetidamente ATÉ que o valor de expr2 seja TRUE. APÓS cada iteração do loop, expr3 é avaliado. Isso geralmente é usado para incrementar um contador de loop. Até você pode usar a seguinte sintaxe: Feito 7 * 10 = 70 E para a segunda execução de teste, ele imprimirá a mensagem - Erro - Número faltando no formulário argumento da linha de comando Sintaxe: ./mtable number Use para imprimir a tabela de multiplicação para um determinado número Isso aconteceu porque não fornecemos o número para o qual desejamos a tabuada. Portanto, o script está mostrando mensagem de erro, sintaxe e uso do nosso script. É uma boa ideia se nosso programa receber algum argumento, informar ao usuário qual é a utilização do script e como usá-lo. Na sintaxe acima ANTES da primeira iteração, expr1 é avaliado. Isso geralmente é usado para inicializar variáveis para o loop. ... ... A segunda expressão é a condição, ou seja, todas as instruções entre do e done executadas desde que a expressão 2 (ou seja, continue enquanto o valor da variável i for menor ou equivalente a 5) for TRUE. A última expressão i++ incrementa o valor de i em 1, ou seja, é equivalente à instrução i = i + 1. .. repita todas as instruções entre do e done até que expr2 seja TRUE http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (2 de 5) [29/07/2002 18:52:26] LSST v1.05r3 > Capítulo 3 > Loop for Machine Translated by Google
  • 73. Aninhamento de for Loop http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (3 de 5) [29/07/2002 18:52:26] LSST v1.05r3 > Capítulo 3 > Loop for feito echo "" #### imprime a nova linha ### Execute o script acima da seguinte forma: $ chmod +x nestedfor.sh $ ./ nestefor.sh 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 fi echo -e -n "033[40m" #### volta a cor de fundo para preto echo "" #### imprime a nova linha ### pronto feito eco -n "$i" tot=`expr $i + $j` tmp=`expr $tot % 2` se [ $tmp -eq 0 ]; então echo -e -n "033[47m " senão echo -e -n "033[40m " feito $ vi tabuleiro de xadrez for (( i = 1; i <= 9; i++ )) ### Outer for loop ### do ### Loop for externo ### for (( j = 1 ; j <= 5; j++ )) ### Loop for interno ### do for (( j = 1 ; j <= 9; j++ )) ### Loop for interno ### do Aqui, para cada valor de i, o loop interno é alternado 5 vezes, com a variável j assumindo valores de 1 a 5. O loop for interno termina quando o valor de j excede 5, e o loop externo termina quando o valor de i excede 5. Como você pode ver, a instrução if pode ser aninhada, da mesma forma, a instrução de loop pode ser aninhada. Você pode aninhar o loop for. Para entender o aninhamento do loop for, consulte o script de shell a seguir. Execute o script acima da seguinte maneira: $ chmod +x tabuleiro de xadrez $ ./chessboard $ vi nestedfor.sh for (( i = 1; i <= 5; i++ )) fazer O script a seguir é bastante interessante, pois imprime o tabuleiro de xadrez na tela. Machine Translated by Google
  • 74. para (( j = 1 ; j <= 9; j++ )) faça para (( i = 1; i <= 9; i++ )) faça No meu terminal acima, o script produz a saída da seguinte forma: tot=`expr $i + $j` tmp=`expr $tot % 2` se [ $tmp -eq 0 ]; então O fim do loop externo e os scripts de shell são encerrados com a impressão do tabuleiro de xadrez. Exercício Tente entender os scripts shell (for loops) mostrados no capítulo do exercício. feito Se a posição do número par imprimir o bloco de cor branca (usando a instrução echo -e -n "033[47m " ); caso contrário, para uma posição ímpar, imprima a caixa de cor preta (usando a instrução echo -e -n "033[40m " ). Estas declarações são responsáveis por imprimir todo o tabuleiro de xadrez na tela com cores alternativas. eco "" Imprima a linha em branco Fim do loop interno Certifique-se de que seu fundo seja preto, como sempre fazemos em nossos terminais. feito Explicação Comece o loop externo que é executado 9 vezes, e o loop externo termina quando o valor de i excede 9 Inicia o loop interno, para cada valor de i o loop interno é alternado 9 vezes, com a variável j assumindo valores de 1 para 9. O loop for interno termina quando o valor de j excede 9. Veja as posições de números pares e ímpares usando essas instruções. eco -e -n "033[40m" echo -e -n "033[47m " senão echo -e -n "033[40m " O script de shell acima pode ser explicado da seguinte forma: Comando(s)/Declarações fi LSST v1.05r3 > Capítulo 3 > Loop for http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (4 de 5) [29/07/2002 18:52:26] Machine Translated by Google
  • 75. Loops em scripts de shell Próximo Lar Anterior Acima enquanto loop http://www.cyberciti.biz/pdf/lsst/ch03sec06.html (5 de 5) [29/07/2002 18:52:26] LSST v1.05r3 > Capítulo 3 > Loop for Machine Translated by Google
  • 76. .... .. Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3: Construções de linguagem estruturada de shells (bash) feito Salve-o e tente como $ chmod 755 nt1 $./ nt1 7 O loop acima pode ser explicado da seguinte forma: enquanto [condição] faça exit 1 fi n=$1 i=1 enquanto [ $i -le 10 ] faça echo "$n * $i = `expr $i * $n`" i=`expr $i + 1` concluído comando1 comando2 comando3 echo "Erro - Número faltando no argumento da linha de comando do formulário" echo "Sintaxe: $0 número" Próximo Sintaxe: Use para imprimir a tabuada de multiplicação para um determinado número" echo " O loop é executado enquanto a condição dada for verdadeira. Por exemplo. O programa for loop acima (mostrado na última seção do loop for) pode ser escrito usando o loop while como: $cat > nt1 #!/bin/sh # #Script para testar a instrução while # # if [ $# -eq 0 ] then Anterior http://www.cyberciti.biz/pdf/lsst/ch03sec07.html (1 de 2) [29/07/2002 18:52:28] LSST v1.05r3 > Capítulo 3 > A declaração do caso enquanto loop Machine Translated by Google
  • 77. enquanto [$i -le 10] o programa só produzirá feito Esta é a nossa condição de loop, aqui se o valor de i for menor variável (Aqui está definido como 7 ) n=$1 Cuidado: Se você ignorar (remover) esta instrução, nosso loop se tornará um loop infinito porque o valor condição do loop não é verdadeira. Por isso Defina o valor do argumento da linha de comando como 7 * 2 = 14 Aumente i em 1 e armazene o resultado em i. (ou seja, eu = eu + 1) Imprimir tabela de multiplicação como ... 7 * 10 = 70, aqui cada valor de tempo da variável n é Próximo Lar fazer e pronto echo "$n * $i = `expr $i * $n`" i=`expr $i + 1` 7 * 1 = 7 maior que 10 então, o shell executa todas as instruções entre fazer Anterior para loop Defina a variável i como 1 da variável i sempre permanece menor que 10 e eu=1 o loop é encerrado. O loop para aqui se i não for menor que 10, ou seja multiplique seja eu. E (vezes infinitas) A declaração do caso 7 * 1 = 7 Iniciar ciclo .... ... Acima http://www.cyberciti.biz/pdf/lsst/ch03sec07.html (2 de 2) [29/07/2002 18:52:28] LSST v1.05r3 > Capítulo 3 > A declaração do caso Machine Translated by Google
  • 78. .. aluguel="*** Veículo desconhecido ***" elif [ -n $1 ] then ... Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3: Construções de linguagem estruturada de shells (bash) comando;; comando padrão2) comando;; comando *) ... # caso contrário, faça o primeiro argumento como aluguel Sintaxe: ... $ cat > car # # se nenhum nome de veículo for fornecido # ou seja, -z $1 é definido e é NULL # # se nenhum argumento de linha de comando .. case $ nome da variável no comando padrão1) se [-z $1] então comando;; Próximo esac O $variable-name é comparado com os padrões até que uma correspondência seja encontrada. O shell então executa todas as instruções até os dois pontos e vírgulas próximos um do outro. O padrão é *) e será executado se nenhuma correspondência for encontrada. Por exemplo, escreva o script da seguinte forma: A instrução case é uma boa alternativa à instrução multinível if-then-else-fi. Ele permite que você combine vários valores com uma variável. É mais fácil ler e escrever. comando padrãoN) ... .. comando;; Anterior .. http://www.cyberciti.biz/pdf/lsst/ch03sec08.html (1 de 2) [29/07/2002 18:52:32] LSST v1.05r3 > Capítulo 3 > A declaração do caso A declaração do caso Machine Translated by Google
  • 79. Para o segundo teste, imprima "Para carro Rs.20 por km/ m". Salve-o pressionando CTRL+D e execute-o da seguinte forma: $ chmod +x car $ car van $ car car $ car Maruti-800 Para o primeiro teste, combine com a van e mostrará a saída "Para van Rs.10 por km/ m." Anterior while loop esac O primeiro script verificará se $1 (primeiro argumento da linha de comando) é fornecido ou não, se NÃO for fornecido, defina o valor da variável de aluguel como "*** Veículo desconhecido ***", se o argumento da linha de comando for fornecido/fornece o valor definido de variável de aluguel para determinado valor (linha de comando arg). O aluguel $ é comparado com os padrões até que uma correspondência seja encontrada. case $aluguel em "carro") echo "Por $aluguel Rs.20 por km/m";; "van") echo "Por $ aluguel Rs.10 por km/m";; "jipe") echo "Por $ aluguel Rs.5 por km/m";; "bicicleta") echo "Por $aluguel 20 paisa por km/m";; *) echo "Desculpe, não consigo alugar $ para você";; aluguel = $ 1 fi Lar Observe que esac é sempre necessário para indicar a declaração de fim de caso. E para a última execução, não há correspondência para Maruti-800, portanto, o padrão, ou seja, *) é executado e imprime: "Desculpe, não consigo obter um Maruti-800 para você". Acima Próximo Como depurar o shell script? Veja mais um exemplo de instrução case no capítulo 4 da seção comando shift. http://www.cyberciti.biz/pdf/lsst/ch03sec08.html (2 de 2) [29/07/2002 18:52:32] LSST v1.05r3 > Capítulo 3 > A declaração do caso Machine Translated by Google
  • 80. A opção pode ser -v Imprimir linhas de entrada do shell à medida que são lidas. -x Depois de expandir cada comando simples, o bash exibe o valor expandido da variável do sistema PS4, seguido pelo comando e seus argumentos expandidos. OU opção bash {shell-script-name} Exemplo: $ cat > dsh1.sh # # Script para mostrar a depuração do shell # tot=`expr $1 + $2` echo $tot Anterior Ao programar o shell, às vezes você precisa encontrar os erros (bugs) no script do shell e corrigi-los (remover erros - depurar). Para este propósito, você pode usar as opções -v e -x com o comando sh ou bash para depurar o script de shell. A sintaxe geral é a seguinte: Sintaxe: sh option {shell-script-name } Próximo Tutorial de script de shell do Linux (LSST) v1.05r3 Capítulo 3: Construções de linguagem estruturada de shells (bash) Pressione ctrl + d para salvar e execute-o como $ chmod 755 dsh1.sh $ ./dsh1.sh 4 5 9 $ sh -x dsh1.sh 4 5 # # Script para mostrar a depuração do shell # tot=`expr $1 + $2` expr $1 + $2 ++ expr 4 + 5 + tot=9 echo $tot + echo 9 9 Veja a saída acima, -x mostra os valores exatos das variáveis (ou as instruções são mostradas na tela com valores). LSST v1.05r3 > Capítulo 3 > Como depurar o shell script? http://www.cyberciti.biz/pdf/lsst/ch03sec09.html (1 de 2) [29/07/2002 18:52:33] Como depurar o shell script? Machine Translated by Google
  • 81. Próximo A declaração do caso Acima Anterior Lar Use a opção -v para depurar scripts de shell complexos. $ sh -v dsh1.sh 4 5 Script avançado de shell http://www.cyberciti.biz/pdf/lsst/ch03sec09.html (2 de 2) [29/07/2002 18:52:33] LSST v1.05r3 > Capítulo 3 > Como depurar o shell script? Machine Translated by Google
  • 82. • Interface do usuário • Funções Tutorial de script de shell do Linux (LSST) v1.05r3 • Execução condicional Acima Próximo /dev/null - para enviar saída indesejada de Depois de aprender a base do script de shell, é hora de aprender mais recursos avançados de script/comando de shell Como depurar o shell script? Lar como: • Manipulação de vários argumentos de linha de comando, etc. Próximo Anterior • Descritores de arquivos Capítulo 4: Comandos avançados de script de shell programa Anterior • armadilhas http://www.cyberciti.biz/pdf/lsst/ch04.html [29/07/2002 18:52:35] LSST v1.05r3 > Capítulo 4 > Introdução Introdução Machine Translated by Google
  • 83. comando> /dev/null Variável local e global do Shell (exportação Sintaxe: Tutorial de script de shell do Linux (LSST) v1.05r3 Exemplo: Execute os dois comandos a seguir $ ls > /dev/nulo $ rm > /dev/nulo comando) partição e sistema de arquivos. Acima Ponto Futuro: Este é um arquivo especial do Linux que é usado para enviar qualquer saída indesejada do programa/comando. Próximo outros arquivos do dispositivo. Os arquivos neste diretório representam principalmente dispositivos periféricos, como disquetes Próximo Comandos avançados de script de shell Lar disco, placa de som, impressoras de linha etc. Veja o tutorial do sistema de arquivos para obter mais informações sobre o disco Linux, $ ls > /dev/nulo Capítulo 4: Comandos avançados de script de shell 1) Por que a saída do último comando não é redirecionada para o dispositivo /dev/null? Anterior A saída do comando acima não é mostrada na tela e é enviada para este arquivo especial. O diretório /dev contém Anterior LSST v1.05r3 > Capítulo 4 > /dev/null - Use para enviar saída indesejada do programa http://www.cyberciti.biz/pdf/lsst/ch04sec1.html [29/07/2002 18:52:36] do programa /dev/null - Use para enviar saída indesejada Machine Translated by Google