Latest web development tutorials

Shell? Variable

Variables de shell

Cuando se define una variable, el nombre de la variable sin un signo de dólar ($, variables de lenguaje PHP necesarios), tales como:

your_name="w3big.com"

Tenga en cuenta que no hay espacio entre el nombre de la variable y el signo igual, lo que puede ser familiar para usted y todos los lenguajes de programación no son lo mismo. Mientras tanto, el nombre de la variable debe seguir estas reglas de nomenclatura:

  • El primer carácter debe ser una letra (az, AZ).
  • Sin espacios, use un guión bajo (_).
  • No se puede utilizar puntuacion.
  • No se puede utilizar en la fiesta de la palabra clave (comando de ayuda para ver las palabras clave reservadas disponibles).

Además de la asignación directa de manera explícita, también se puede asignar valores a las variables con afirmaciones tales como:

for file in `ls /etc`

La declaración anterior el nombre del archivo / etc fuera de circulación.


Uso de variables

Utilice una variable definida, siempre que el nombre de la variable precedido por un signo de dólar, así:

your_name="qinjx"
echo $your_name
echo ${your_name}

Nombre de la variable fuera de los corchetes son opcionales, además, sin bien, agregar las llaves a ayudar a explicar las variables de identificación de límites, como el siguiente caso:

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

Si usted no da las variables de habilidad, además de aparatos ortopédicos, escritas echo "Soy bueno en $ skillScript", el intérprete se puso $ skillScript como una variable (su valor está vacío), la ejecución de código no es el resultado que esperamos lo mismo de nuevo.

Envía todos los apoyos variables, es una buena práctica de programación.

variables definidas, pueden ser re-definido, tales como:

your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name

Escribir es legal, pero tenga en cuenta que cuando la segunda asignación no puede escribir $ su_nombre = "Alibaba", utilice una variable cuando se añade a la muestra de dólar ($).

Variables de lectura

Utilice el comando variables de sólo lectura se pueden definir como variable de solo lectura, el valor de las variables de sólo lectura no se pueden cambiar.

Los siguientes ejemplos tratan de cambiar las variables de sólo lectura, se dan los resultados:

#!/bin/bash
myUrl="http://www.w3cschool.cc"
readonly myUrl
myUrl="http://www.w3big.com"

Ejecute la secuencia de comandos con los siguientes resultados:

/bin/sh: NAME: This variable is read only.

Retire la variable

Utilice el comando unset para borrar una variable. sintaxis:

unset variable_name

Variable no puede ser reutilizado después de haber sido eliminado. comando unset no puede eliminar las variables de sólo lectura.

Ejemplos

#!/bin/sh
myUrl="http://www.w3big.com"
unset myUrl
echo $myUrl

Ejemplos de la aplicación de los anteriores no tendrán salida.

Tipos de variables

Cuando se ejecuta el shell, habrá tres parámetros simultáneamente:

  • 1) Variables locales Las variables locales definidas en el script o comando sólo es válido en el caso de shell actual, otro programa de arranque del shell no puede acceder a las variables locales.
  • 2) las variables ambientales de todos los programas, incluido el programa de shell empezamos, pueden acceder a las variables de entorno, algunas aplicaciones requieren variables de entorno para asegurar su funcionamiento normal. Cuando sea necesario, el script de shell también puede definir variables de entorno.
  • 3) las variables de shell shell variable es una variable especial establecido por el programa de shell. desembolsar parte variable de la variable de entorno, algunos son variables locales para garantizar el funcionamiento normal de la concha

cáscara de la secuencia

la programación del shell cadena es los tipos de datos más comunes y útiles (excepto números y cadenas, también carece de otros tipos de mano), las cadenas se pueden encerrar entre comillas simples, comillas dobles también se pueden utilizar, o pueden no estar entre comillas. La diferencia entre las marcas simples y dobles con PHP es similar.

Las comillas simples

str='this is a string'

Cuerdas sueltas citadas restricciones-:

  • Cualquier carácter entre comillas simples se emiten como comillas simples en la variable de cadena no es válido;
  • comilla no pueden aparecer en una comilla simple (usar comillas simples después de que el carácter de escape ni).

Las comillas dobles

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"

Doble cita ventajas:

  • Las comillas dobles pueden tener variables
  • Las comillas dobles pueden aparecer carácter de escape

La concatenación de cadenas

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

Obtener longitud de la cadena

string="abcd"
echo ${#string} #输出 4

extracto de subcadena

Los siguientes ejemplos de las dos primeras cadenas de caracteres iniciar la captura de cuatro personajes:

string="w3big is a great site"
echo ${string:1:4} # 输出 unoo

encontrar subcadena

Encontrar la posición del carácter "i o s":

string="w3big is a great company"
echo `expr index "$string" is`  # 输出 8

Nota: El script de arriba "` "anti-citas en lugar de comillas simples" "" No se dejen engañar, oh.


matriz de Shell

Bash es compatible con matriz unidimensional (no admite matrices multidimensionales), y no define el tamaño de la matriz.

Al igual que en el lenguaje C, el subíndice de elementos de matriz de número 0 de inicio. Obtiene una matriz de elementos de aprovechar el subíndice, el subíndice puede ser un número entero o expresión aritmética cuyo valor debe ser mayor que o igual a 0.

definir las matrices

En el Shell, utilizar paréntesis para denotar una matriz, los elementos de la matriz con los símbolos "espacio" separadas. La forma general de una matriz se define como sigue:

数组名=(值1 值2 ... 值n)

Por ejemplo:

array_name=(value0 value1 value2 value3)

o

array_name=(
value0
value1
value2
value3
)

También se puede definir por separado para cada componente de la matriz:

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

No se puede usar un índice continuo, y no hay límite por debajo del rango meta.

Lee matriz

El formato general se lee el valor de elemento de matriz:

${数组名[下标]}

Por ejemplo:

valuen=${array_name[n]}

Utilizar el símbolo @ se puede obtener una matriz de todos los elementos, tales como:

echo ${array_name[@]}

Obtener longitud de la matriz

Obtiene una matriz de tramos de longitud de la cadena y obtener la misma manera, por ejemplo:

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

Notas Shell

Línea con "#" al principio del comentario, será ignorado por el intérprete.

sh no hay comentarios de varias líneas, cada línea sólo puede añadir un signo #. Sólo de esta manera:

#--------------------------------------------
# 这是一个注释
# author:本教程
# site:www.w3big.com
# slogan:学的不仅是技术,更是梦想!
#--------------------------------------------
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
# 
#
##### 用户配置区 结束  #####

Si el proceso de desarrollo, se encuentran con grandes trozos de código que comentar temporalmente después de un tiempo y sin comentar, cómo hacerlo?

Cada fila añadir un símbolo # demasiado laborioso, se puede poner un poco de código para ser anotada con un par de llaves, que se define como una función, no hay lugar para llamar a esta función, este código no se ejecutará, y llegó en forma de anotaciones efecto.