atribuição de shell

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

 

Acho que você gosta

Origin www.cnblogs.com/recommencer/p/12719230.html
Recomendado
Clasificación