¿Cómo comprobar las opciones de Shell?

¿Cómo comprobar las opciones de Shell?

Quiero comprobar qué opciones están habilitadas para mi shell actual. Por ejemplo, quiero saber si me invocaron con -xalguna -eotra opción.

Utilizo sourceun script de shell con una línea shebang #!/bin/bash -xy luego intento desactivar 'x' con una set +xal final del script. Ahora quiero comprobar si mi set +xlínea tuvo éxito.

Intento de solución

Descubrí printenvy setformas de inspeccionar cierta información sobre el shell actual, pero ninguna de ellas parece contener una variable que almacene x eo similar.

Respuesta1

Está en la $-variable.

Ver eldocumentación para el setcomando-- desplácese hacia abajo hasta el final y verá "El conjunto actual de opciones se puede encontrar en $-".

Una demostración rápida

$ bash
$ echo $-
himBH
$ set -f; set +H
$ echo $-
fhimB
$ [[ $- == *i* ]] && echo This is an interactive shell
This is an interactive shell

Respuesta2

También hay $BASHOPTSy $SHELLOPTS.

fuente

información relacionada