
Quiero comprobar qué opciones están habilitadas para mi shell actual. Por ejemplo, quiero saber si me invocaron con -x
alguna -e
otra opción.
Utilizo source
un script de shell con una línea shebang #!/bin/bash -x
y luego intento desactivar 'x' con una set +x
al final del script. Ahora quiero comprobar si mi set +x
línea tuvo éxito.
Intento de solución
Descubrí printenv
y set
formas de inspeccionar cierta información sobre el shell actual, pero ninguna de ellas parece contener una variable que almacene x
e
o similar.
Respuesta1
Está en la $-
variable.
Ver eldocumentación para el set
comando-- 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 $BASHOPTS
y $SHELLOPTS
.