Título do catálogo
Parâmetros de eco
-
echo -n # significa nenhuma saída de nova linha
-
echo -e exibe caracteres de escape, exibe o conteúdo de escape na tela (deve ser usado entre aspas duplas)
-
Os caracteres de escape comumente usados são:
\b
\c
\n
\f
\v
\t
\r
\\
-
\ b : Depois de escapar, é equivalente a pressionar a tecla backspace (backspace), mas apenas se houver caracteres após "\ b": "\ b" significa excluir o caractere anterior e "\ b \ b" significa excluir o primeiros dois personagens
-
\ c : saída sem quebra de linha. Quando não houver caracteres após "\ c", a função é equivalente a echo -n, mas quando ainda houver caracteres após "\ c", os caracteres após "\ c" não serão Resultado
-
\ n : Nova linha, os caracteres a serem produzidos começam em uma nova linha de "\ n". No Linux, \ n tem o significado de retorno de carro
-
\ f : Nova linha, mas o início da nova linha após a nova linha é conectado ao final da linha anterior
-
\ v : igual a \ f
-
\ t : após escapar, significa inserir uma guia, ou seja, uma guia horizontal
-
\ r : o cursor se move para o início da linha, mas não quebra, o que é equivalente a usar os caracteres após "\ r" para substituir os caracteres do mesmo comprimento antes de "\ r", mas quando não há nenhum caractere depois de "\ r", "\ r" "O caractere anterior não será sobrescrito
-
\\ : significa inserir "\" a si mesmo
-
declaração de loop
para declaração de loop
- Leia diferentes valores de variáveis para executar o mesmo conjunto de comandos um por um (coletivamente chamados de operação transversal)
- formato
for 变量名 in 取值列表
do
命令序列
done
-
O exemplo mais simples de loop
- A primeira forma de expressão: i em {1… 10} —— i em {1… 10… 2} 2 significa adicionar 2 após cada loop de maneira iterativa
- A segunda forma de expressão: i em $ (seq 1 10) —— i em $ (seq 1 2 10) tem o mesmo significado que acima
- A terceira forma de expressão: (i = 1; i <10; i ++) —— (i = 1; i <= 10; i + = 2) Mesmo significado que acima
- A primeira forma de expressão: i em {1… 10} —— i em {1… 10… 2} 2 significa adicionar 2 após cada loop de maneira iterativa
-
Aprendizagem ao vivo e exemplo de aplicação 1
Adicionar usuários em lotes: os nomes de usuário são armazenados no arquivo users.txt, em cada linha, a senha inicial é definida como 123456
-
Exemplo de aprendizado ao vivo 2
Verifique o status do host com base no endereço IP. O endereço IP é armazenado no arquivo ipadds.txt, um por linha. Use o comando ping para verificar a conectividade de cada host
instrução while loop
- Teste uma determinada condição repetidamente e execute-a repetidamente, desde que a condição seja verdadeira
- formato
while 条件测试操作
do
命令序列
done
- Embora operação simples (a posição de inserção da iteração no conteúdo de saída tem uma certa relação)
- Alguns exemplos da aplicação da instrução while
1. Adicionar usuários em lotes: O nome de usuário deve começar com stu e ser numerado em ordem numérica. Há 20 no total, a saber stu1 ... stu20, e a senha é definida como 123456
- Dificuldade de atualização
2. Adivinhe o jogo do preço das commodities: obtenha um número aleatório por meio da variável RANDOM, solicite ao usuário que adivinhe e registre o número de vezes e saia do loop após adivinhar - RANDOM pode obter aleatoriamente valores aleatórios de 0-32767
- Se quisermos gerar números no intervalo de 0 a 25:
$(($RANDOM%26))
- Se você deseja obter um número no intervalo de 1 a 68:
$(($RANDOM%68+1 ))
- Se você deseja obter um número no intervalo de 6 a 87:
$(($RANDOM%82+6 ))
até declaração de loop
- Teste uma determinada condição repetidamente e execute-a repetidamente, desde que a condição não seja estabelecida
- Equivalente a while por turno com while, até parecer um pouco sem gosto
until 条件测试操作
do
命令序列
done
- até a operação simples
- Alguns exemplos de declaração até
1. Calcule o valor da soma de 1 a 50 e calcule por acumulação de loop
sair do circuito
- break : pula para fora do loop que contém break
- Laço duplo simples
- Salte do loop de camada única no loop interno
- pausa é sequencial
- break 2: Significa que o número depois de pular para fora da 2ª camada do loop é quantas camadas estão fora do loop
continue a abortar um único loop
- continue : aborta um comando em um loop, mas não interrompe completamente o comando inteiro
- Não é recomendado usar continue em um loop while
#Continue é usado em while.Neste momento, a posição do código iterativo é muito importante e afetará o resultado de todo o código.
Separador de campo IFS
- O separador de campo IFS
contém espaços , tabulações e novas linhas por padrão\t
\n
Se uma parte do conteúdo editado em users.txt tiver espaços
-
IFS=$' \t\n'
- Você pode redefinir a variável de IFS
IFS=$'\n'
# para reconhecer apenas o caractere de nova linha - O que devo fazer se o espaço não puder ser reconhecido depois que o IFS for modificado e outras operações forem realizadas
IFS=$'\n' #进行重新定义变量IFS只识别换行符
OLDIFS=$' \t\n' #重新定义之前的内容
.......
IFS=$OLDIFS #把定义的变量重新定义给IFS