Wie erhalten Sie Beschreibungen der verfügbaren Shopt-Optionen?

7

Wie kann kanonisch auf die lokale Dokumentation aller verfügbaren Shell-Optionen zugegriffen werden shopt?

Ich verwende Ubuntu 12.04 und kann ausführen help shopt, um eine Beschreibung der Funktionen zu erhalten shopt:

shopt: shopt [-pqsu] [-o] [optname ...]
    Set and unset shell options.
    ...

Ich kann die verschiedenen Shell-Optionen und ihre Werte ( shoptoder shopt -p) auflisten . Aber wie finde ich heraus, was jeder tatsächlich tut, ohne den Komfort meiner Linux-Box zu verlassen? Ich suche nicht online nach den Beschreibungen . Gibt es eine manSeite oder etwas, das mir fehlt?

bnjmn
quelle
1
Schneller Trick ~man bash | grep "shopt"
Eddie B

Antworten:

8

Siehe den Abschnitt "Shell-eingebaute Befehle" von man bash; Es gibt einen Eintrag shopt, der alle verfügbaren Shell-Optionen beschreibt. Hier ist ein Auszug:

   shopt [-pqsu] [-o] [optname ...]

   [...]

          autocd  If  set,  a command name that is the name of a directory
                  is executed as if it were the argument to  the  cd  com-
                  mand.  This option is only used by interactive shells.
          cdable_vars
                  If  set,  an  argument to the cd builtin command that is
                  not a directory is assumed to be the name of a  variable
                  whose value is the directory to change to.
          cdspell If set, minor errors in the spelling of a directory com-
                  ponent in a cd command will be  corrected.   The  errors
                  checked for are transposed characters, a missing charac-
                  ter, and one character too many.   If  a  correction  is
                  found,  the corrected file name is printed, and the com-
                  mand proceeds.  This option is only used by  interactive
                  shells.

          [...]
Chris Down
quelle
4

Die Liste der Optionen finden Sie in der Manpage unter der Beschreibung des shopteingebauten. Um die Manpage in der Liste der Optionen zu öffnen, können Sie die lessFunktion verwenden, mit der Sie beim Start einen Befehl wie eine Suche ausführen können:

PAGER='less "+/^ *The list of shopt"' man bash

So zeigen Sie diese Dokumentation in Info an:

info --index shopt bash

Wenn Sie den relevanten Teil der Manpage extrahieren möchten:

man bash | sed '/^ *The list of shopt/, /^ *suspend / p' | sed '$d'

oder (schöner, da es die Einkerbung entfernt)

man bash | awk '
    /^ *The list of shopt/ {indent=match($0, /[^ ]/)}
    /^ *suspend / && RSTART==indent {exit}
    indent {print substr($0, indent)}'

Wenn Sie die Beschreibung einer Option extrahieren möchten (z. B. sourcepath):

man bash | awk -v target=sourcepath '
    /^ *The list of shopt/ {shopt=1}
    shopt && $1==target {getline; indent=match($0, /[^ ]/)}
    indent {if (match($0, /[^ ]/)>=indent) print substr($0, indent); else exit}'
Gilles 'SO - hör auf böse zu sein'
quelle