Um, leitura recebe entrada do teclado
leia [opções] [nome da variável]
Opções:
-p mensagem de prompt
-t segundos
-n caracteres
-s ocultam dados de entrada
Exemplo: Use o prompt de leitura para inserir o valor do parâmetro
O resultado:
Comparado com as mudanças nos parâmetros de posição, é mais amigável
Segundo, declare o tipo de variável
+ Cancelar atributo de tipo da variável
- Definir atributos do tipo para variáveis
-a Define o tipo de variável como array
-i declara o tipo de variável como inteiro
-x declaram variáveis como variáveis de ambiente
-p exibe o tipo declarado da variável
Por exemplo 1: a não define um tipo, o padrão é uma sequência, quando a é definido como um número inteiro (-i), ao atribuir uma sequência a, é claro que falhará, a saída é 0. Visualizar as propriedades de um (-p ), Para cirurgia plástica
gjl @ gjl-máquina virtual: ~ / shellTest $ declare - pa declare - a = " 1 " gjl @ gjl - máquina virtual: ~ / shellTest $ declare - ia gjl @ gjl - máquina virtual: ~ / shellTest $ a = ' nós ' gjl @ gjl -virtual-machine: ~ / shellTest $ echo $ a 0 gjl @ gjl -virtual-machine: ~ / shellTest $ a = 12 gjl @ gjl -virtual-machine: ~ / shellTest $ echo $ a 12 gjl @ gjl -virtual-machine: ~ / shellTest $ declare - pa declare -ia = " 12 "
Exemplo 2: Declarar b como uma matriz e exibir a matriz
gjl @ gjl-máquina virtual: ~ / shellTest $ declare -ac = ' ([0] = 1 [2] = ' 11 ' [3] = ' aa ' ) ' gjl @ gjl -virtual-machine: ~ / shellTest $ echo $ {c [ 2 ]} 11
Atribuição de matriz
1. Adicione conforme necessário
gjl @ gjl-máquina virtual: ~ / shellTest $ b [ 0 ] = 1 gjl @ gjl -máquina virtual: ~ / shellTest $ b [ 1 ] = 2 gjl @ gjl -máquina virtual: ~ / shellTest $ echo $ {b [* ]} 1 2 gjl @ gjl -virtual-machine: ~ / shellTest $ echo $ {b [@]} 1 2
2. Adicione vários elementos de uma só vez
gjl @ gjl-máquina virtual: ~ / shellTest $ declare - ac gjl @ gjl - máquina virtual : ~ / shellTest $ c = ( 1 2 3 ) gjl @ gjl - máquina virtual: ~ / shellTest $ echo $ {c [* ]} 1 2 3
3. Adicione no formato esparso
gjl @ gjl-máquina virtual: ~ / shellTest $ declare -ac = ' ([0] = 1 [2] = ' 11 ' [3] = ' aa ' ) ' gjl @ gjl -virtual-machine: ~ / shellTest $ echo $ {c [ 2 ]} 11
A matriz não está na ordem de 0123
4. Adicione por read -a
#! / bin / bash read -p " insira shuzu: " - ae echo $ {e [* ]} echo $ {e [ 2 ]} gjl @ gjl -virtual-machine: ~ / shellTest $ test07. sh introduza shuzu: 3 4 34 3 4 34 34
Nota: Ao referenciar variáveis, deve haver pelo menos colchetes. Use colchetes para representar a matriz. Os elementos da matriz são separados por "espaço"
Excluir um valor em uma matriz / excluir uma matriz
gjl @ gjl-máquina virtual: ~ / shellTest $ echo $ {c [* ]} 1 2 3 gjl @ gjl -máquina virtual: ~ / shellTest $ unset c [ 2 ] gjl @ gjl -máquina virtual : ~ / shellTest $ echo $ {c [* ]} 1 2 gjl @ gjl -virtual-machine: ~ / shellTest $ unset c gjl @ gjl -virtual-machine: ~ / shellTest $ echo $ {c [* ]} gjl @ gjl - máquina virtual: ~ / shellTest $
Cancelar o tipo de variável
Por exemplo: a é um número inteiro, use + para excluir o atributo inteiro de um
gjl @ gjl-máquina virtual: ~ / shellTest $ declare - pa declare -ia = " 12 " gjl @ gjl - máquina virtual: ~ / shellTest $ declare + ia gjl @ gjl - máquina virtual: ~ / shellTest $ declare - pa declare - a = " 12 " gjl @ gjl -virtual-machine: ~ / shellTest $
Três, operação
Três métodos de operações numéricas
Declarar (não recomendado)
Use a ferramenta de cálculo expr ou let (não recomendado)
gjl @ gjl-máquina virtual: ~ $ a = 12 gjl @ gjl -máquina virtual : ~ $ b = 23 gjl @ gjl -máquina virtual : ~ $ c = $ ( expr $ a + $ b) gjl @ gjl -virtual-machine: ~ $ echo $ c 35 gjl @ gjl -virtual -machine: ~ $ let e = $ a + $ b gjl @ gjl -virtual -machine: ~ $ echo $ e 35 gjl @ gjl -virtual -machine: ~ $ Notas: 1 , + espaço é necessário nos dois lados 2 , $ () refere-se à chamada de comandos do sistema
Use $ (()) ou $ [] para executar operações numéricas
gjl @ gjl-máquina virtual: ~ $ a = 11 ; b = 33 gjl @ gjl -virtual-machine: ~ $ echo c = $ (($ a + $ b)) c = 44 gjl @ gjl -virtual-machine: ~ $ echo d = $ [$ a + $ b] d = 44 gjl @ gjl -virtual-machine: ~ $
Exemplo: Quatro calculadoras aritméticas (primeira edição)
#! / bin / bash leia -t 30 -p " digite num1: " num1 leia -t 30 -p " digite num2: " num2 leia -t 30 -p " digite operato: [+ - * /]: " oper [ " $ oper " == " + " ] && echo " $ (($ num1 + $ num2)) " && exit [ " $ oper " == "- "] && echo " $ (($ num1- $ num2)) " && exit [ " $ oper " == " * " ] && echo " $ (($ num1 * $ num2)) " && exit [ " $ oper " = = " / " ] && echo " $ (($ num1 / $ num2)) " && exit echo " insira um operado variável "
Desvantagens e pontos de atenção: num1 e num2 não são julgados neste exemplo. E [] precisa de espaços nos dois lados, caso contrário, ele reportará um erro
4. Teste variável e substituição de conteúdo
Por exemplo 1: Se a variável a não estiver configurada, o valor x será o novo valor. Se a estiver definido como nulo, o valor x será nulo. Se definido como 123, o valor de x é 123.
Pode ser usado para testar se uma variável existe ou tem um valor