Shell? Variable
Variáveis de shell
Quando você define uma variável, o nome da variável, sem um sinal de dólar ($, variáveis de linguagem PHP necessário), tais como:
your_name="w3big.com"
Note-se que não há nenhum espaço entre o nome da variável e o sinal de igual, o que pode ser familiar para você e todas as linguagens de programação não são os mesmos. Enquanto isso, o nome da variável deve seguir estas regras de nomenclatura:
- O primeiro caractere deve ser uma letra (az, AZ).
- Sem espaços, use um sublinhado (_).
- Você não pode usar a pontuação.
- Você não pode usar o bash no palavra-chave (comando de ajuda para ver as palavras-chave reservadas disponíveis).
Além explicitamente atribuição direta, você também pode atribuir valores a variáveis com declarações como:
for file in `ls /etc`
A declaração acima o nome do arquivo / etc fora de circulação.
usando variáveis
Use uma variável definida, desde que o nome da variável precedido por um sinal de dólar, como este:
your_name="qinjx" echo $your_name echo ${your_name}
Nome da variável fora das chaves são opcionais, além de sem tudo bem, adicione chaves para ajudar a explicar as variáveis de identificação de fronteira, como o caso que se segue:
for skill in Ada Coffe Action Java; do echo "I am good at ${skill}Script" done
Se você não dá variáveis de habilidade, mais cintas, escritas echo "eu sou bom em US $ skillScript", o intérprete vai colocar US $ skillScript como uma variável (o seu valor está vazio), a execução de código não é o resultado que esperamos o mesmo novamente.
Diga todas as variáveis chaves, é uma boa prática de programação.
variáveis definidas, pode ser re-definida, tais como:
your_name="tom" echo $your_name your_name="alibaba" echo $your_name
Escrever é legal, mas observe que quando a segunda atribuição não pode escrever $ your_name = "Alibaba", use uma variável quando ele é adicionado ao sinal de dólar ($).
Variáveis de leitura
Use o comando variáveis somente leitura pode ser definido como somente leitura variável, o valor de somente leitura variáveis não pode ser alterado.
Os exemplos a seguir tentar alterar as variáveis de somente leitura, os resultados que está sendo dado:
#!/bin/bash myUrl="http://www.w3cschool.cc" readonly myUrl myUrl="http://www.w3big.com"
Executar o script com os seguintes resultados:
/bin/sh: NAME: This variable is read only.
Remover variável
Use o comando unset para apagar uma variável. sintaxe:
unset variable_name
Variável não pode ser reutilizado depois de ser removido. comando unset não é possível remover as variáveis somente leitura.
Exemplos
#!/bin/sh myUrl="http://www.w3big.com" unset myUrl echo $myUrl
Exemplos da implementação do acima não terá saída.
Tipos de variáveis
Quando você executar o shell, haverá três parâmetros simultaneamente:
- 1) Variáveis locais As variáveis locais definidos no script ou comando só é válido no caso shell atual, outro programa de inicialização do shell não pode acessar variáveis locais.
- 2) as variáveis ambientais de todos os programas, incluindo o programa shell iniciados, pode acessar variáveis de ambiente, algumas aplicações requerem variáveis de ambiente para assegurar o seu funcionamento normal. Quando necessário, o shell script também pode definir variáveis de ambiente.
- 3) variáveis Shell Shell variável é uma variável especial definido pelo programa shell. shell parte variável da variável de ambiente, alguns são variáveis locais para garantir o funcionamento normal da concha
cadeia Shell
programação shell String é os tipos de dados mais comuns e úteis (exceto números e strings, também carece de outros tipos de mão), strings podem ser colocados entre aspas simples, aspas duplas também pode ser usado, ou não pode ser entre aspas. A diferença entre aspas simples e duplas com PHP é semelhante.
aspas simples
str='this is a string'
Individuais citadas restrições cordas:
- Quaisquer caracteres entre aspas simples são emitidos como aspas simples na variável de cadeia é inválido;
- cordas simples citado não pode aparecer em uma única citação (usar aspas simples após o caractere de escape nem).
aspas duplas
your_name='qinjx' str="Hello, I know your are \"$your_name\"! \n"
Duplo cita vantagens:
- aspas duplas podem ter variável
- aspas duplas podem aparecer caractere de escape
concatenação
your_name="qinjx" greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1
Obter comprimento da corda
string="abcd" echo ${#string} #输出 4
substring Extract
Os exemplos a seguir das duas primeiras cadeias de caracteres iniciar a captura de quatro personagens:
string="w3big is a great site" echo ${string:1:4} # 输出 unoo
encontrar substring
Encontrar caráter "i ou s" position:
string="w3big is a great company" echo `expr index "$string" is` # 输出 8
Nota: O script acima "` "anti-aspas em vez de aspas simples" "" Não se deixe enganar, oh.
matriz Shell
bash suporta matriz unidimensional (não suporta matrizes), e não define o tamanho da matriz.
Semelhante à linguagem C, o índice de elementos da matriz de número 0 começo. Obtém uma matriz de elementos de aproveitar o subscrito, o índice pode ser um número inteiro ou expressão aritmética cujo valor deve ser maior do que ou igual a 0.
definir matrizes
No Shell, use parênteses para denotar uma matriz, os elementos da matriz com os símbolos "espaço" separadas. A forma geral de uma matriz é definida como se segue:
数组名=(值1 值2 ... 值n)
Por exemplo:
array_name=(value0 value1 value2 value3)
ou
array_name=( value0 value1 value2 value3 )
Você também pode definir separadamente para cada componente da matriz:
array_name[0]=value0 array_name[1]=value1 array_name[n]=valuen
Você não pode usar um índice contínuo, e não há limite no âmbito do intervalo alvo.
Leia matriz
O formato geral é lido valor de elemento de matriz:
${数组名[下标]}
Por exemplo:
valuen=${array_name[n]}
Use o símbolo @ pode obter uma matriz de todos os elementos, tais como:
echo ${array_name[@]}
Veja o comprimento da matriz
Obtém uma matriz de comprimentos de comprimento da corda e obter o mesmo caminho, por exemplo:
# 取得数组元素的个数 length=${#array_name[@]} # 或者 length=${#array_name[*]} # 取得数组单个元素的长度 lengthn=${#array_name[n]}
shell Notas
Linha com "#" no início do comentário, será ignorada pelo intérprete.
sh não há comentários multi-linha, cada linha só pode adicionar um sinal de #. Só assim:
#-------------------------------------------- # 这是一个注释 # author:本教程 # site:www.w3big.com # slogan:学的不仅是技术,更是梦想! #-------------------------------------------- ##### 用户配置区 开始 ##### # # # 这里可以添加脚本描述信息 # # ##### 用户配置区 结束 #####
Se o processo de desenvolvimento, o encontro de grandes blocos de código precisa comentar temporariamente depois de um tempo e comentada, como fazê-lo?
Cada linha adicionar um símbolo # muito trabalhoso, você pode colocar um pouco de código a ser anotada com um par de chaves, definida como uma função, não há lugar para chamar esta função, este código não será executado, e chegou como anotações efeito.