GNU/Linux >> Tutoriales Linux >  >> Linux

Comando set de Linux y cómo usarlo {9 ejemplos}

Introducción

El set El comando es un comando de shell de Linux incorporado que muestra y establece los nombres y valores de las variables de entorno de shell y Linux. En sistemas operativos tipo Unix, el set funciones de comando dentro del shell Bourne (sh ), shell C (csh ), y shell Korn (ksh ).

En este tutorial, aprenderá lo que set cuál es el comando y cómo usarlo.

Requisitos previos

  • Un sistema que ejecuta Linux.
  • Acceso a una terminal/línea de comando.

Linux establece la sintaxis del comando

La sintaxis general para set el comando es:

set [options] [arguments]

Opciones

En el contexto del set comando, [options] son configuraciones o indicadores que se configuran o no en el entorno de shell de Bash. Úselo para influir en el comportamiento de los scripts de shell definidos y ayudar a ejecutar las tareas deseadas.

  • Establezca una opción usando un signo menos (- ) seguido de la opción adecuada.
  • Desactive una opción usando un signo más (+ ) seguido de la opción adecuada.

Argumentos

[arguments] son parámetros posicionales y se asignan en orden con los siguientes parámetros:

  • $1
  • $2
  • ...
  • $n

No especificar ninguna opción o argumento hace que el comando imprima todas las variables de shell.

Valores de salida

El set El comando tiene tres valores de salida:

  • 0 . Marca una finalización exitosa.
  • 1 . Error causado por un argumento no válido.
  • 2 . Error que genera un mensaje de uso, normalmente porque falta un argumento.

Linux establece opciones de comando

El set El comando proporciona una extensa lista de opciones que se pueden combinar.

La mayoría de las opciones tienen un indicador -o flag correspondiente. que se puede utilizar para invocar la opción. La siguiente tabla enumera todas las opciones y su forma alternativa respectiva usando el -o flag sintaxis.

Ejemplos de comandos de configuración de Linux

Esta sección enumera ejemplos de los usos más comunes del set comando.

Uso del comando set sin opciones

Ejecutar el comando sin opciones ni argumentos genera una lista de todas las configuraciones:los nombres y valores de todas las funciones y variables de shell. Dado que la lista es muy larga, puede desplazarse por ella utilizando Re Pág y Av Pág llaves.

A continuación se muestra un ejemplo de un set parcial salida del comando:

Depuración de secuencias de comandos

El set El comando es especialmente útil cuando intenta depurar sus scripts. Usa el -x opción con el set comando para ver qué comando en su secuencia de comandos se ejecuta después del resultado, lo que le permite determinar el resultado de cada comando.

El siguiente ejemplo demuestra cómo depurar scripts con set -x . Siga los pasos a continuación:

1. Ejecute set -x :

set -x

2. Use su editor de texto favorito (nosotros usamos el editor vi) para crear un script. Creamos un ciclo simple que nos permite ver el -x efectos de opción:

x=10
while [ $x -gt 0 ]; do
         x=$[ $x-1 ]
         echo $x
         sleep 2
done

3. Asegúrese de cambiar el script para que sea ejecutable. Este paso siempre es obligatorio antes de ejecutar un script . La sintaxis es:

chmod +x [script-name.sh]

4. Ejecute el script. La sintaxis es:

./[script-name.sh]

La salida imprime una línea a la vez, la ejecuta, muestra el resultado, si lo hay, y pasa a la siguiente línea.

Otra forma de habilitar la depuración es colocar el -x bandera en la línea shebang del guión:

#!/bin/bash -x

Exportación de secuencias de comandos

Exporte automáticamente cualquier variable o función creada con -a opción. La exportación de variables o funciones permite que otras subcapas y scripts las utilicen.

Habilite la exportación de secuencias de comandos ejecutando el siguiente comando:

set -a

El siguiente ejemplo muestra cómo funciona la exportación de secuencias de comandos. Siga los pasos a continuación:

1. Cree un nuevo script con el editor de su elección. Por ejemplo:

one=1
two=2
three=3
four=4
/bin/bash

El /bin/bash argumento marca el comienzo de un nuevo shell.

2. Compruebe si el script funciona en un nuevo shell:

echo $one $two $three $four

El resultado demuestra que la función que creamos se exportó y funciona incluso cuando se inicia un nuevo shell.

Salir cuando falla un comando

Usa el -e opción para indicar a un script que salga si encuentra un error durante la ejecución. Detener una secuencia de comandos parcialmente funcional ayuda a evitar problemas o resultados incorrectos.

Cree un script con los siguientes contenidos para probar esta opción:

#!/bin/bash
set -e
cat nonexistingfile
echo "The end"

En el ejemplo anterior, la secuencia de comandos encuentra un error al intentar mostrar el contenido de nonexistingfile porque ese archivo no existe, lo que hace que se cierre en ese punto. Por lo tanto, el echo final el comando no se ejecuta.

Evitar la pérdida de datos

La configuración predeterminada de Bash es sobrescribir los archivos existentes. Sin embargo, usando el -C La opción configura Bash para que no sobrescriba un archivo existente cuando se redirija la salida usando > , >& , o <> se redirige a ese archivo.

Por ejemplo:

Bash primero nos permite sobrescribir el listing.txt expediente. Sin embargo, después de ejecutar set -C comando, Bash genera un mensaje que indica que no puede sobrescribir un archivo existente.

Reportar Variables Inexistentes

La configuración predeterminada en Bash es ignorar variables inexistentes y trabajar con las existentes. Usando el -u La opción evita que Bash ignore variables que no existen y hace que informe el problema.

Por ejemplo, el siguiente script no contiene el set -u comando y Bash ignora eso $var2 no está definido

#!/bin/bash
var1="123"
echo $var1 $var2

La salida contiene solo $var1 .

Sin embargo, cambiar el script y agregar set -u El comando evita que Bash ignore el problema y lo informa:

#!/bin/bash
set -u
var1="123"
echo $var1 $var2

Establecer parámetros posicionales

El set El comando también puede asignar valores a parámetros posicionales. Un parámetro posicional es una variable de shell cuyo valor se referencia mediante la siguiente sintaxis:

$[N]

El [N] valor es un dígito que denota la posición del parámetro. Por ejemplo, $1 es el primer parámetro posicional, $2 es el segundo parámetro, etc.

Por ejemplo:

set first second third

Ejecutar el comando anterior establece first para corresponder al $1 parámetro posicional, second a $2 y third a $3 . Verifique esto con el comando echo:

echo $2

Desestablezca los parámetros posicionales ejecutando:

set --

Dividir cadenas

Usa el set Comando para dividir cadenas basadas en espacios en variables separadas. Por ejemplo, divida las cadenas en una variable llamada myvar , que dice "Esto es una prueba" .

myvar="This is a test"

set -- $myvar
echo $1
echo $2
echo $3
echo $4

Use esta opción para extraer y filtrar información de la salida de un comando, similar a lo que hace el comando awk.

Establecer todos los indicadores de exportación y notificación

El -o allexport le permite exportar automáticamente todas las variables definidas posteriormente, mientras que el -o notify flag le indica al shell que imprima los mensajes de finalización del trabajo de inmediato.

Para establecer las banderas, ejecute:

set -o allexport -o notify

En el siguiente ejemplo, vemos que el shell le notifica sobre la finalización del trabajo en segundo plano desde que se exportó el script:


Linux
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo usar el comando Su en Linux

  4. Cómo usar el comando de pantalla de Linux

  5. Cómo usar el comando ldconfig en Linux

Cómo usar el comando sysctl en Linux

Cómo usar el comando de apagado de Linux

Cómo usar grep en Linux

Cómo usar el comando Mkdir en Linux

Cómo usar el comando de trabajos en Linux

Cómo usar el comando de pantalla en Linux

    Opciones -o banderas Descripción
    -a -o allexport Marca todas las variables o funciones creadas o modificadas para exportar.
    -b -o notify Alerta al usuario sobre la finalización del trabajo en segundo plano.
    -e -o errexit Instruye a un shell que salga si un comando falla, es decir, si genera un estado de salida distinto de cero.
    -f -o noglob Desactiva la generación de nombres de archivo (globbing).
    -h -o hashall Localiza y guarda comandos de función cuando se define una función. El -h La opción está habilitada de forma predeterminada.
    -k -o keyword Coloca todos los argumentos de asignación en el entorno de un comando, no solo los que preceden al nombre del comando.
    -n -o noexec Lee comandos pero no los ejecuta.
    -m -o monitor Muestra un mensaje cuando se completa una tarea.
    -p -o privileged Deshabilita $ENV procesamiento de archivos e importación de funciones de shell. El -p La opción está habilitada de forma predeterminada cuando los ID de usuario reales y efectivos no coinciden. Desactivarlo establece el uid y gid efectivos en el uid y gid reales.
    -t -o onecmd Lee un comando y luego sale.
    -u -o nounset Trata las variables no configuradas o no definidas como un error al sustituirlas (durante la expansión de parámetros). No se aplica a parámetros especiales como el comodín * o @ .
    -v -o verbose Imprime las líneas de entrada del shell mientras las lee.
    -x -o xtrace Imprime los argumentos del comando durante la ejecución.
    -B -o braceexpand Realiza la expansión de la abrazadera de la carcasa.
    -C -o noclobber Evita que se sobrescriban los archivos regulares existentes mediante la redirección de salida. De forma predeterminada, Bash permite que la salida redirigida sobrescriba los archivos existentes.
    -E -o errtrace Hace que las funciones de shell hereden la trampa ERR.
    -H -o histexpand Habilita la sustitución del historial de estilo. La opción está activada de forma predeterminada cuando el shell es interactivo.
    -P -o physical Evita el seguimiento de enlaces simbólicos al ejecutar comandos.
    -T -o functrace Hace que las funciones de shell hereden la trampa DEBUG.
    -- n/d Asigna los argumentos restantes a los parámetros posicionales. Si no quedan argumentos, anula los parámetros posicionales.
    - n/d Asigna cualquier argumento restante a los parámetros posicionales. Desactiva el -x y -v opciones.
    n/d -o emacs Usa una interfaz de edición de líneas al estilo emacs.
    n/d -o history Habilita el historial de comandos.
    n/d -o ignoreeof El shell no se cierra al leer el final del archivo.
    n/d -o interactive-comments Permite comentarios en comandos interactivos.
    n/d -o nolog No registra definiciones de funciones en el archivo de historial.
    n/d -o pipefail El valor de retorno de una canalización es el estado del último comando que tenía un estado distinto de cero al salir. Si ningún comando tenía un estado distinto de cero al salir, el valor es cero.
    n/d -o posix Hace que Bash coincida con el estándar cuando la operación predeterminada difiere del estándar Posix.
    n/d -o vi Utiliza una interfaz de edición de líneas similar a vi .