Funciones de shell
Programas externos
Bash, como un shell, es en realidad un lenguaje de "pegamento". Ayuda a los programas a cooperar entre sí, y se beneficia de ello. Siempre busque en Internet lo que desea: hay muchas utilidades de línea de comandos disponibles.
Usando whiptail
Whiptail es un programa que permite que los scripts de shell muestren cuadros de diálogo al usuario con fines informativos, o para obtener información del usuario de manera amigable. Whiptail se incluye de forma predeterminada en Debian y en varias otras distribuciones de GNU / Linux.
Usando man, info y ayuda
Estos tres programas son donde puede encontrar ayuda o referencia de. man muestra las páginas de manual de roff , la información muestra las documentaciones de texinfo, mientras que la ayuda muestra las ayudas integradas.
Al añadir --long-ayuda , --help o --usage a un programa de línea de comandos puede también le da la información de uso. Posibles sinónimos incluyen -H y -h .
Solo prueba estos:
man --help man man info --help man info info info help help
Presionar h en las interfaces de man and info también puede darle alguna dirección.
Entrada / Salida
La lectura incorporada
De la ayuda leída :
read: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
Lea una línea de la entrada estándar y divídala en campos. La lectura es excelente tanto para las entradas del usuario como para la lectura de entradas / tuberías estándar.
Un ejemplo de entrada de usuario:
O incluso más simple:
Ejemplo de nivel de Hola-mundo de la operación stdout:
Solo se creativo. Por ejemplo, en muchos sentidos, leer puede reemplazar el látigo. Aquí hay un ejemplo, extraído del script de shell de Arthur200000 :
# USAGE # yes_or_no "title" "text" width ["yes text"] ["no text"] # INPUTS # $ LINE = (y / n) - Si debemos usar el estilo de entrada basado en líneas (lectura) # $ _DEFAULT = (opcional) - El valor predeterminado para leer yes_or_no () {
# USAGE # user_input var_name ["title"] ["prompt"] [altura] [ancho] # ENTRADAS # $ LINE = (y / n) - Si debemos usar el estilo de entrada basado en líneas (lectura) # $ _DEFAULT = ( opcional) - El valor predeterminado para leer; por defecto a nada. user_input ()
Redirección de shell
En shells, la redirección se usa para la E / S de archivos. El uso más común de es redirigir secuencias estándar (stdin, stdout y stderr) para aceptar la entrada de otro programa a través de tuberías, para guardar la salida del programa como un archivo, y para suprimir la salida del programa redireccionando una secuencia a / dev / null .
Índice de símbolos
- Lógicamente niega el estado de salida de una tubería. Por ejemplo, si grep YES votes.txt devuelve 0 , entonces ! grep YES votes.txt devuelve 1 , pero de lo contrario es equivalente.
- También soportado por el [...] builtin, y dentro de expresiones condicionales. Por ejemplo, si [[-e file.txt]] es verdadero, entonces [[! -e archivo.txt]] es falso.
- También se admite en expresiones aritméticas. Por ejemplo, si $ i es distinto de cero, entonces $ ((! I)) es 0 .
- Cita un argumento (o parte de un argumento) para que no esté dividido por espacios en blanco en múltiples argumentos, pero sin impedir la expansión de parámetros y la sustitución de comandos internamente.
- Véase también $ "..." a continuación.
- Introduce un comentario (que continúa hasta el final de la línea). Por ejemplo, el comando foo bar baz # bip es equivalente al comando foo bar baz , porque el comentario # bip se elimina.
- Dentro de una expresión aritmética, un literal entero de la forma se interpreta en la base . Por ejemplo, 2 # 110110 es binario 110110, es decir, cincuenta y cuatro.
- Véase también $ # abajo.
- (Por lo general, " shebang " cuando se lee en voz alta). Se usa al comienzo de un script ejecutable para especificar el intérprete que se debe usar para ejecutarlo. Por ejemplo, si la primera línea de script.pl es #! / Usr / bin / perl , y script.pl tiene permisos ejecutables, entonces ./script.pl es aproximadamente equivalente a / usr / bin / perl ./script.pl .
- La primera línea de un script Bash generalmente es #! / Bin / bash o #! / Bin / sh . (El primero generalmente se considera preferible.)
- Introduce varios tipos de expansiones, especialmente la expansión de parámetros (como en o ), la sustitución de comandos (como en ) y la expansión aritmética (como en ).
- Una variante de "..." (ver más arriba) que admite la traducción específica del entorno local. (A menos que esté escribiendo scripts para su uso en varios idiomas, por ejemplo, inglés y francés, no debe preocuparse por esto).
- El número de parámetros posicionales (argumentos de un script o función). Por ejemplo, si se invoca un script como script.sh abc , entonces $ # será 3 . Los elementos incorporados que modifican los parámetros posicionales, como shift y set , también afectan a $ # .
Una frase. Se utiliza para citar texto literalmente.
- Activa la sustitución de mando; equivalente a $ (...) , pero es algo más propenso a errores.
Tilde. Normalmente se utiliza para referirse al directorio de inicio. Registrado como "mrwhite", cd ~ (o simplemente cd) iría a / home / mrwhite. Al iniciar sesión como otro usuario, se podría lograr el mismo efecto con 'cd ~ mrwhite'.