En los sistemas Unix y tipo Unix, el shell se convierte en el entorno del usuario . Un proceso tiene su propio entorno. Un programa ejecutable acepta los argumentos de la línea de comandos. Estos argumentos son las variables de entorno y ocupan memoria en el espacio de entorno del proceso . Las variables en un script de shell son también variables de entorno y ocupan el espacio de datos en la pila de proceso . En este caso, la secuencia de comandos shell que se ejecuta es el proceso . Por lo tanto , en el nivel superior , el entorno del proceso impone un límite del número de variables y el espacio ocupado por ellos.
El Shell Variable
Definir una variable en un script de shell mediante la asignación de un valor a la misma. No hay tipos de datos definidos en un script de shell. La variable puede tomar cualquier valor de cadena de caracteres o valores numéricos arbitrarios. Al asignar valor a una variable de shell , el sistema asigna suficiente memoria para almacenar el valor. La sintaxis varía con el sistema operativo y el tipo concha. Por ejemplo, en Korn , debe asignar valores como sigue : $ myvar = " ABCD123 " En C Shell , la sintaxis es la siguiente : set MiVar = " ABCD123 "
Teóricamente , no hay límite en el tamaño del valor de la variable . Sin embargo , como se mencionó en la Sección 1 , los recursos del sistema operativo y el espacio de entorno del proceso en tiempo de ejecución puede negar , potencialmente, el espacio necesario para un valor muy largo .
Cálculo del tamaño de una Shell variable
Calcular el tamaño de la concha MiVar variable de la siguiente manera : $ MyVar_len = $ {# } MiVar
la siguiente declaración se hace eco el tamaño de una sentence.echo "Qué variable long . La longitud de mi variable es "+ $ {# } MiVar +" " La salida será similar a esto: . Qué variable long . La longitud de mi variable es 7 .
Limitaciones de tamaño
El sistema operativo y el tipo de shell imponen un límite a la longitud del nombre de variable. Normalmente, el nombre no debe tener más de 20 caracteres de longitud . Este es un buen limitación porque los nombres más largos afectar la legibilidad de la escritura . La cáscara también limita la longitud de una palabra en el valor . Una palabra es una cadena de caracteres sin espacios . El valor de una variable puede ser un grupo de palabras con espacios entre ellas . Una variable también puede contener una matriz.
Buena programación Prácticas
No es una buena práctica para asignar valores muy largos para las variables de shell . Si la secuencia de comandos procesa un flujo de datos , que se debe leer desde y escribir en un archivo temporal. Leer y escribir unos pocos bytes a la vez en un bucle hasta que llegue al final del archivo.