Na verdade, é um pouco estranho escrever a “abertura” na última seção. Porém, o início do primeiro artigo (Operações Numéricas) é na verdade uma pequena abertura. É mencionado que toda a série requer uma certa base de programação Shell. Lendo esta série, cheguei ao fim para reescrever este capítulo inicial. O capítulo de abertura apresenta principalmente o que é Shell, ambiente operacional Shell, sintaxe básica do Shell e habilidades de depuração.
Primeiro, vejamos a posição do Shell em todo o sistema operacional na figura a seguir. O círculo externo da figura descreve todo o sistema operacional (como.
Debian/Ubuntu/Slackwareetc.), o círculo interno descreve o núcleo do sistema operacional (por exemplo,
Núcleo Linux),e
Conchae
GUITambém serve como interface entre o usuário e o sistema operacional.
GUIFornece uma interface gráfica de usuário muito fácil de usar e aprender;
ConchaEle fornece aos usuários uma interface de linha de comando, recebe a entrada do teclado do usuário, analisa e executa os comandos na string de entrada e, em seguida, retorna os resultados da execução ao usuário. Pode ser mais complicado de usar, mas porque consome menos recursos. , Além disso, depois de se tornar proficiente na operação, a eficiência do trabalho pode ser melhorada e tem a função de processamento em lote, por isso é muito popular em algumas aplicações.
ConchaComo interface de usuário, é na verdade um intérprete (intérprete, como em
linuxOs seguintes são mais comumente usados
Bash), podemos visualizar o atual
Concha:
$ echo $Shell/bin/bash$ ls -l /bin/bash-rwxr-xr-x 1 raiz raiz 702160 13/05/2008 02:33 /bin/bash
O intérprete pode não apenas interpretar comandos simples, mas também interpretar um arquivo com uma estrutura de sintaxe específica, chamada de script. A forma como ele interpreta esses comandos e arquivos de script especificamente não é analisada em profundidade aqui. Consulte outro artigo que escrevi em 2008: "O momento da execução do programa na linha de comando do Linux".
Como o programa pode interpretar arquivos com uma determinada estrutura gramatical, podemos seguir uma determinada gramática para escrevê-lo. Que tipo de gramática ele possui, como executá-lo e como depurá-lo? Abaixo usamos
BashVamos discutir esses aspectos com um exemplo.
Para facilitar os exercícios a seguir, primeiro configuramos um ambiente operacional básico: Em um sistema operacional Linux, existe um ambiente operacional em execução.
BashA linha de comando está esperando que digitemos o comando. Esta linha de comando pode estar na interface gráfica.
terminal(Por exemplo
UbuntuMuito poderoso
Exterminador do Futuro), ou pode ser uma interface de personagem
Console(pode ser usado
CTRL+ALT+F1~6alternar) se você encontrar o atual
Conchanão
Bash, substitua-o por:
$ chsh $USER -s /bin/bash$ su $USER
Ou simplesmente digite Bash:
$ bash$ echo $Shell # Confirme /bin/bash
Se você não possui um sistema operacional Linux instalado, você também pode considerar o uso de serviços de experimentos virtuais Linux fornecidos por algumas comunidades públicas, que geralmente fornecem acesso remoto.
Concha, você pode passar
Telnetou é
SshFaça login no cliente para praticar.
Com o ambiente operacional básico, como executar os comandos digitados pelo usuário ou o arquivo de script escrito pelo usuário?
?
Suponha que escrevemos um script Shell chamado
teste.sh.
A primeira maneira é garantir que o comando que executamos tenha permissões executáveis e então digitar o comando diretamente para executá-lo:
$ chmod +x /caminho/para/teste.sh$ /caminho/para/teste.sh
O segundo método é escrever diretamente o script como
BashOs parâmetros do interpretador são passados em:
$ bash /caminho/para/teste.sh
ou
$ fonte /caminho/para/teste.sh
ou
$ ./caminho/para/teste.sh
Um primeiro
Olá, mundoprograma.
Vamos apresentar a estrutura básica de um programa Shell para
Olá, mundoPor exemplo:
#!/bin/bash -v# test.shecho Olá, mundo
Salve o código acima como
teste.she, em seguida, executá-lo das duas maneiras diferentes acima, você poderá ver os seguintes efeitos.
Método um:
$ chmod +x test.sh$ ./test.sh ./test.sh #!/bin/bash -v echo Olá, mundo Olá, mundo
Método dois:
$ bash test.shHello, Mundo$ fonte test.shHello, Mundo$ test.shHello, Mundo.
Descobrimos que há uma diferença entre os dois resultados em execução. Por quê? Aqui precisamos prestar atenção
teste.shO conteúdo do arquivo tem apenas duas linhas, a segunda linha é impressa
Olá, mundo, ambos os métodos atingem seu propósito, mas o primeiro método imprime mais conteúdo do próprio arquivo de script. Por quê?
O motivo está na primeira linha do arquivo. Quando executamos o arquivo de script diretamente, esta linha informa ao sistema operacional para usar.
#!O intérprete e os parâmetros correspondentes após o símbolo são usados para interpretar o arquivo de script. Ao analisar a primeira linha, descobrimos que o intérprete e os parâmetros correspondentes são.
/bin/bash -v,e
-vAcontece que é para imprimir o código fonte do programa, mas não o informamos ao usar o segundo método;
BashPasse quaisquer argumentos adicionais, para que ele simplesmente interprete o próprio arquivo de script.
Para outros detalhes de sintaxe, consulte diretamente "Notas de estudo de programação Shell", que está no Apêndice 1 no final deste livro.
A linguagem Shell é uma linguagem interpretada e seu processo de programação é um pouco diferente daquele das linguagens compiladas. O processo básico é o seguinte:
algoritmo de projeto
Use Shell para escrever scripts para implementar algoritmos
Execute o script diretamente
Percebe-se que não possui o incômodo processo de compilação e vinculação de linguagens compiladas, mas justamente por isso não é muito conveniente depurar quando dá errado, pois erros de sintaxe e erros lógicos aparecem em tempo de execução. Abaixo apresentamos brevemente o método de depuração.
Você pode consultar diretamente: tecnologia de depuração de script Shell ou método de depuração BASH.
Como linguagem interpretada, a linguagem Shell pode utilizar um grande número de ferramentas existentes, incluindo cálculos numéricos, processamento simbólico, operações de arquivo, operações de rede, etc. a serem executados durante a execução. Durante o processo, chamar continuamente programas externos do disco e alternar entre processos pode trazer desvantagens em termos de eficiência operacional, por isso devemos optar por usar Shell ou outras linguagens para programação de acordo com a aplicação.
No momento em que o programa é executado na linha de comando do Linux
Notas de estudo de programação Linux Shell
Tecnologia de depuração de script Shell
Métodos de depuração BASH